Yazılardaki ürünleri komponentci.net'te inceleyebilir, hemen sipariş verebilirsiniz.komponentci.net →
KomponentciBlog Mağaza
Blog  ›  Projeler

Otomatik Sokak Lambası Projesi: LDR ve Arduino ile

Otomatik Sokak Lambası Projesi: LDR ve Arduino ile
Kısa cevap

Otomatik sokak lambası, karanlık olunca kendiliğinden yanan ve aydınlanınca sönen bir lamba maketidir. LDR ışığı ölçer, Arduino bu değeri trimpotla ayarlanan eşikle karşılaştırır ve bir röleyle 12V LED lambayı yakar. Histerezis sayesinde lamba alacakaranlıkta sürekli yanıp sönmez ve röle tıkırdamaz. Arduino'suz basit bir sürüm de tek BC547 transistörle yapılabilir.

Akşam olunca sokak lambalarının kendiliğinden yanması, okul projeleri için güzel bir konudur. Bu yazıda bir LDR, Arduino Uno, trimpot ve röle kartıyla karanlıkta yanan bir lamba maketi kuruyoruz. Eşiğin nasıl ayarlandığını ve histerezisin lambayı nasıl sakinleştirdiğini anlatıyoruz. Sonda Arduino'suz, tek transistörlü bir sürüm ve ödev sunumu için öneriler var.

Otomatik sokak lambası nedir?

Otomatik sokak lambası, ortam ışığını ölçen ve ışık belirli bir seviyenin altına düşünce lambayı kendiliğinden yakan bir aydınlatma düzenidir. Gerçek sokak lambalarında bu iş için fotosel ya da astronomik saat kullanılır. Maketimizde fotoselin yerini LDR, karar vericinin yerini Arduino alır.

LDR ışığı nasıl algılar?

LDR, üzerine düşen ışık arttıkça direnci azalan bir dirençtir; buna fotodirenç de denir. Arduino direnci doğrudan ölçemez, gerilimi ölçer. Bu yüzden LDR, 10 kΩ'luk sabit bir dirençle gerilim bölücü olarak bağlanır. LDR 5V'a, direnç GND'ye gider; ortadaki nokta A0'a bağlanır.

OrtamLDR direnci (örnek)A0 gerilimianalogRead
Aydınlık oda1 kΩ5 × 10 / 11 ≈ 4,55 V≈ 931
Alacakaranlık10 kΩ5 × 10 / 20 = 2,5 V≈ 512
Karanlık100 kΩ5 × 10 / 110 ≈ 0,45 V≈ 93

Tablodaki direnç değerleri örnektir; her LDR biraz farklıdır. Önemli olan yöndür: karanlık arttıkça okunan sayı küçülür. LDR'nin çalışmasını LDR ışık sensörü yazısında ayrıntılı anlattık.

Hangi malzemeler gerekir?

Otomatik sokak lambası için Arduino Uno, bir LDR, 10 kΩ direnç, 10 kΩ trimpot, 5V röle kartı, 12V LED modül ve 12V adaptör yeterlidir.

Malzeme listesi

MalzemeAdetNe işe yarar?
Arduino Uno R3 (CH340)1Işığı okur, lambayı yakıp söndürür
5 mm LDR ışık sensörü1Ortam ışığını algılar
10 kΩ trimpot1Lambanın yanacağı karanlık seviyesini ayarlar
5V röle kartı112V lamba devresini açıp kapatır
12V beyaz LED modül1-4Sokak lambasının ışığını verir
10 kΩ direnç1LDR ile gerilim bölücü kurar
12V 1A adaptör ve DC jak girişi1LED modülleri besler

Röle kartının iki kanalı vardır; bu projede yalnızca birini kullanıyoruz. Bir LED modül yaklaşık 100 mA çeker. Dört modül yaklaşık 0,4 A eder; 12V 1A adaptör bunu rahatça karşılar.

Devre nasıl bağlanır?

LDR A0'a, trimpot A1'e, röle kartı D7'ye bağlanır; 12V LED modül ise rölenin COM ve NO uçları üzerinden adaptöre bağlanır.

  • LDR: Bir bacağı 5V'a, diğer bacağı A0'a. A0 ile GND arasına 10 kΩ direnç.
  • Trimpot: Kenar bacakları 5V ve GND'ye, orta bacağı A1'e.
  • Röle kartı: VCC → 5V, GND → GND, IN1 → D7.
  • Lamba devresi: Adaptörün artısı → röle COM; röle NO → LED modülün artısı; LED modülün eksisi → adaptörün eksisi.
Otomatik sokak lambası bağlantı şeması: LDR 5V ile A0 arasına, 10 kΩ direnç A0 ile GND arasına bağlı; 10 kΩ trimpotun kenar bacakları 5V ve GND'ye, orta bacağı A1'e bağlı; röle kartının IN1 ucu Arduino Uno D7 pinine, VCC ucu 5V'a, GND ucu GND'ye bağlı; 12V 1A adaptörün artısı röle COM ucuna, röle NO ucu 12V LED modülün artısına, LED modülün eksisi adaptörün eksisine bağlı; histerezis: lamba ışık eşiğin altına inince yanar, eşik + 60'ın üstüne çıkınca söner
LDR ve 10 kΩ direnç A0'a, trimpot A1'e, röle kartı D7'ye bağlanır; 12V LED modül rölenin COM ve NO uçları üzerinden 12V adaptöre gider.

Arduino bilgisayarın USB'sinden beslenir. 12V devresi Arduino'ya bağlanmaz; iki devre arasında yalnızca röle bulunur. Rölenin nasıl çalıştığını röle modülü nasıl kullanılır yazısında bulabilirsiniz.

Otomatik sokak lambası adım adım nasıl yapılır?

Lamba, önce sensör kısmı kurulup değerler okunarak, sonra röle ve 12V lamba eklenerek yapılır.

  1. LDR'yi, 10 kΩ direnci ve trimpotu breadboard'a takıp yukarıdaki gibi bağlayın.
  2. Röle kartını bağlayın, ama 12V adaptörü henüz takmayın.
  3. Aşağıdaki kodu yükleyin ve Seri Monitör'ü 9600 baud ile açın.
  4. LDR'yi elinizle kapatın. "Isik" değerinin küçüldüğünü görün.
  5. Trimpotu çevirip "Esik" değerini, karanlıktaki ve aydınlıktaki değerlerin arasına getirin.
  6. Röle doğru anda tıklıyorsa adaptörü takın ve LED modülü maketteki direğe yerleştirin.
const int LDR = A0, AYAR = A1, ROLE = 7;
const int ACIK = LOW, KAPALI = HIGH; // çoğu röle kartı LOW ile çeker
const int BANT = 60;                 // histerezis payı
bool lamba = false;

void setup() {
  digitalWrite(ROLE, KAPALI);
  pinMode(ROLE, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int isik = analogRead(LDR);   // karanlıkta küçülür
  int esik = analogRead(AYAR);  // trimpotla ayarlanır
  if (!lamba && isik < esik) lamba = true;
  if (lamba && isik > esik + BANT) lamba = false;
  digitalWrite(ROLE, lamba ? ACIK : KAPALI);
  Serial.print("Isik: "); Serial.print(isik);
  Serial.print("  Esik: "); Serial.println(esik);
  delay(500);
}

Röle kartınız HIGH ile çekiyorsa ACIK ve KAPALI değerlerinin yerini değiştirin. Lamba gündüz yanıp gece sönüyorsa bunu kontrol edin.

Histerezis nedir, eşik nasıl ayarlanır?

Histerezis, lambanın yanma ve sönme eşiklerini birbirinden biraz ayırmaktır. Kodda lamba ışık değeri eşiğin altına düşünce yanar, ama ancak eşik + 60'ın üstüne çıkınca söner. Eşik 300 ise lamba 300'ün altında yanar, 360'ın üstünde söner.

Histerezis olmasaydı değer alacakaranlıkta 298 ile 302 arasında gidip gelirken röle sürekli tıkırdardı. Bu hem rahatsız eder hem de rölenin kontaklarını yıpratır. Eşik trimpotla, bant genişliği koddaki BANT sayısıyla ayarlanır.

Arduino olmadan BC547 ile yapılabilir mi?

Evet, tek bir BC547 transistörle Arduino'suz bir sürüm yapılabilir, ama histerezisi yoktur. Devre 9V pille çalışır ve 5 mm beyaz LED yakar.

  • 9V'un artısı → 10 kΩ direnç → 100 kΩ trimpot → transistörün beyzi.
  • Beyz → LDR → GND.
  • 9V'un artısı → 330 Ω → beyaz LED → BC547 kollektörü; emiter → GND.

Karanlıkta LDR'nin direnci artar ve beyzdeki gerilim yaklaşık 0,6-0,7 V'a ulaşınca transistör iletime geçer. LED akımı (9 − 3 − 0,2) / 330 ≈ 18 mA olur. Bu sürümde LED akşamüstü yavaş yavaş parlar; Arduino sürümündeki gibi kesin bir yanma anı yoktur. Transistörün anahtar gibi çalışmasını transistör nedir yazısında anlattık.

Hangi güvenlik kurallarına dikkat edilmeli?

Bu projede yalnızca USB, 9V pil ve 12V adaptör kullanılır; şu kurallara uyun:

  • 220V şebeke lambası, duy ya da ampul kullanmayın. Röle kartının üzerinde 250VAC yazsa bile 220V bağlamayın.
  • Adaptör hazır ve kapalı bir üründür. Fişini prize bir yetişkin taksın; adaptörü açmayın, kablosunu kesmeyin.
  • Bağlantıyı değiştirmeden önce adaptörü prizden ve USB kablosunu bilgisayardan çıkarın.
  • 9V pilin uçlarını birbirine ya da metale değdirmeyin. Isınan veya şişen pili hemen çıkarın ve bir yetişkine söyleyin.
  • DC jakı lehimlemek gerekiyorsa bunu öğretmen ya da veli gözetiminde yapın.

Ödevinizi nasıl sunarsınız?

Ödevinizi, maketi karartıp aydınlatarak gösterin ve ışık ölçümlerinizi bir tabloyla sunun.

  • Problem: "Sokak lambaları gün boyunca yanarsa ne kadar enerji boşa gider?" sorusuyla başlayın.
  • Ölçüm: Gün içinde farklı saatlerde pencere önündeki ışık değerini not edin ve grafik çizin.
  • Deney: BANT değerini 0, 30 ve 60 yapın. Alacakaranlıkta rölenin bir dakikada kaç kez tıkladığını sayın.
  • Hipotez: "Histerezis bandı büyüdükçe röle daha az tıklar."

Maketin üstünü bir kutuyla kapatarak geceyi canlandırabilirsiniz. Farklı röle kartları için Arduino röle kartları kategorisine bakabilirsiniz.

Sık sorulan sorular

Lamba neden gündüz yanıp gece sönüyor?

Bunun en sık nedeni, röle kartının LOW ile mi HIGH ile mi çektiğinin karışmasıdır. Koddaki ACIK ve KAPALI değerlerinin yerini değiştirip yeniden yükleyin. İkinci neden, LDR ile 10 kΩ direncin yer değiştirmesidir. Bu durumda karanlıkta değer küçülmek yerine büyür. Seri Monitör'de LDR'yi kapatınca sayının küçüldüğünü kontrol edin.

Lambanın ışığı LDR'ye vurursa ne olur?

Lambanın ışığı LDR'ye vurursa Arduino ortamın aydınlandığını sanır ve lambayı söndürür. Lamba sönünce ortam yine kararır ve lamba tekrar yanar; döngü böyle sürer. Bunu önlemek için LDR'yi lambanın ışığının ulaşmadığı bir yere koyun ve yüzünü gökyüzüne, yani yukarı çevirin. Histerezis bandı da bu durumu biraz azaltır.

Hazır LDR'li röle modülü kullanılabilir mi?

Evet, hazır LDR'li röle modülleri Arduino olmadan aynı işi yapar ve eşiği üzerindeki trimpotla ayarlanır. Bağlantı daha kısa sürer. Ancak ödevde LDR'nin nasıl çalıştığını, eşiği ve histerezisi göstermek istiyorsanız Arduino sürümü daha öğreticidir. Seri Monitör'deki sayılar, ölçümlerinizi tabloya dökmenizi de kolaylaştırır.

Röle yerine transistör kullanılabilir mi?

Evet, küçük bir 12V LED modül için röle yerine N kanallı bir MOSFET de kullanılabilir. MOSFET sessiz çalışır ve PWM ile parlaklık ayarı yapmanıza izin verir. Ancak bağlantısı başlangıç için biraz daha dikkat ister. Röle, iki devreyi birbirinden tamamen ayırdığı için öğrenci projelerinde daha anlaşılır bir seçenektir.

Röle tıklıyor ama LED modül neden yanmıyor?

Röle tıklıyor ama lamba yanmıyorsa sorun 12V tarafındadır. Önce adaptörün prize takılı olduğunu kontrol edin. Sonra kabloların COM ve NO uçlarına gittiğinden emin olun; NC ucuna bağlanan lamba ters çalışır. LED modülün artı ve eksi uçlarının doğru bağlandığına bakın. LED'ler ters bağlanınca hiç yanmaz.

Özet

  • LDR'nin direnci karanlıkta artar; 10 kΩ ile gerilim bölücü kurulunca A0 değeri küçülür.
  • Arduino ışık değerini trimpotla ayarlanan eşikle karşılaştırır ve D7'deki röleyi sürer.
  • Histerezis, yanma ve sönme eşiklerini ayırarak rölenin tıkırdamasını önler.
  • Lamba olarak 12V LED modül ve 12V adaptör kullanılır; 220V'a hiçbir şey bağlanmaz.
  • BC547'li sürüm Arduino'suz çalışır, ama histerezisi yoktur.
  • Ödevde farklı histerezis bantlarında rölenin tıklama sayısını karşılaştırın.

Bu yazıdaki ürünler

Diğer yazılar