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

LDR Işık Sensörü: Gerilim Bölücü, Modül ve Gece Lambası

LDR Işık Sensörü: Gerilim Bölücü, Modül ve Gece Lambası
Kısa cevap

LDR, üzerine düşen ışık arttıkça direnci azalan bir ışık sensörüdür. Arduino'da okumak için LDR 10 kΩ'luk bir dirençle gerilim bölücü kurulur ve orta nokta A0 gibi bir analog pine bağlanır. Hazır LDR modülleri bu bölücüye ek olarak eşiği trimpotla ayarlanan dijital (DO) çıkış da verir; otomatik gece lambası için ikisi de kullanılabilir.

Hava karardığında kendiliğinden yanan bir bahçe lambası, ışığa göre parlaklığını ayarlayan bir ekran ya da güneşi takip eden bir panel; bu projelerin çoğunda ışığı ölçen parça bir LDR'dir. Ucuzdur, bağlaması kolaydır ve tek bir dirençle Arduino'ya okunabilir. Bu yazıda LDR'nin çalışma mantığını, gerilim bölücü hesabını, analog okumayı, dijital çıkışlı LDR modüllerini ve otomatik gece lambası kodunu anlatıyoruz.

LDR ışık sensörü nedir?

LDR (Light Dependent Resistor), üzerine düşen ışık arttıkça direnci azalan, ışık azaldıkça direnci artan iki bacaklı bir ışığa duyarlı dirençtir. Türkçede foto direnç ya da ışık sensörü olarak da anılır; kutupsuzdur, bacakları ters takılamaz.

Yaygın LDR'lerin direnci karanlıkta yüzlerce kΩ ile MΩ mertebesine çıkar, aydınlık ortamda birkaç kΩ ve altına iner. Kesin değerler modele göre değiştiği için projede gerçek okumaları görerek eşik belirlemek gerekir. 5 mm LDR ışık sensörü breadboard denemeleri için en sade seçenektir. LDR ışığa anında değil, milisaniyeler mertebesinde bir gecikmeyle tepki verir; bu yüzden hızlı darbeleri değil, ortam ışığını ölçmek için uygundur.

LDR neden gerilim bölücüyle bağlanır?

LDR gerilim bölücüyle bağlanır, çünkü Arduino direnci değil gerilimi ölçer; bölücü, LDR'nin direnç değişimini 0-5V arasında değişen bir gerilime çevirir. LDR 5V ile A0 arasına, 10 kΩ sabit direnç A0 ile GND arasına konur.

Bu düzende çıkış gerilimi Vçıkış = 5V × 10 kΩ / (RLDR + 10 kΩ) formülüyle bulunur. Işık arttıkça LDR direnci düşer, A0'daki gerilim ve okunan değer yükselir. Arduino Uno'nun 10 bitlik ADC'si 0-5V aralığını 0-1023 sayısına çevirir. Formülün temeli Ohm kanunu yazımızda anlatılıyor.

LDR direnciA0 gerilimianalogRead (yaklaşık)Ortam
1 kΩ4,55V930Çok aydınlık
10 kΩ2,50V512Orta aydınlık
100 kΩ0,45V93Loş
1 MΩ0,05V10Karanlık

Sabit direnç, ölçmek istediğiniz ışık düzeyindeki LDR direncine yakın seçilirse çözünürlük en iyi olur. Gece algılaması için 10 kΩ çoğu durumda yeterlidir; 10K 1/4W direnç bu iş için uygundur.

LDR Arduino'ya nasıl bağlanır?

LDR Arduino'ya, bir bacağı 5V'a, diğer bacağı A0'a, A0 ile GND arasına da 10 kΩ direnç gelecek şekilde bağlanır. Gece lambası projesinde buna D9 pinine bağlı bir LED eklenir.

  1. LDR'nin bir bacağını Arduino 5V pinine bağlayın.
  2. LDR'nin diğer bacağını A0 pinine bağlayın.
  3. A0 ile GND arasına 10 kΩ direnç yerleştirin.
  4. LED'in uzun bacağını (anot) 220 Ω direnç üzerinden D9'a, kısa bacağını (katot) GND'ye bağlayın.
  5. Kodu yükleyin, Seri Monitör'de aydınlık ve karanlık değerlerini not edip eşikleri bunlara göre ayarlayın.
LDR ışık sensörü gerilim bölücü ve gece lambası bağlantı şeması: LDR 5V ile A0 arasında, 10 kΩ direnç A0 ile GND arasında; LED anodu 220 Ω direnç üzerinden D9 pinine, katodu GND pinine
LDR ve 10 kΩ direnç gerilim bölücü kurar; orta nokta A0'a gider. Işık arttıkça A0'daki gerilim ve okunan değer yükselir.

LED direncinin nasıl hesaplandığını LED direnci hesaplama yazımızda bulabilirsiniz. Kodun ilk çalıştırmasında ölçülen değerleri görmek eşik seçimini kolaylaştırır.

LDR modülü ile çıplak LDR arasındaki fark nedir?

LDR modülü, LDR ve sabit direnci hazır bölücü olarak kart üzerinde sunar; çoğu modülde ayrıca bir karşılaştırıcı entegre ve trimpot bulunur ve ışık eşiği aşıldığında DO pininden dijital çıkış verilir. Çıplak LDR'de bölücüyü ve eşiği kendiniz kurarsınız.

SeçenekÇıkışEşik ayarıUygun kullanım
Çıplak LDR + dirençAnalogKoddaÖlçüm, kademeli parlaklık
3 pinli LDR modülü (VCC, GND, DO)DijitalTrimpotlaBasit aç-kapa
4 pinli LDR modülü (VCC, GND, DO, AO)Dijital ve analogTrimpot ya da kodHer ikisi
LDR kontrollü röle modülüRöle kontağıTrimpotlaArduino'suz gece lambası

LDR ışık sensörü modülü (4 pin) hem DO hem AO çıkışı sunar; LDR ışık sensör modülü de hızlı denemeler için kullanılabilir. Çoğu modülde ortam ayarlanan eşikten aydınlıkken DO LOW, karanlıkken HIGH olur, ancak bu davranış karta göre değişebilir. Kartın üzerindeki durum LED'ini izleyerek trimpotu çevirin ve kendi modülünüzün mantığını doğrulayın.

Otomatik gece lambası nasıl yapılır?

Otomatik gece lambası için LDR değeri okunur, değer karanlık eşiğinin altına düşünce LED yakılır, aydınlık eşiğinin üstüne çıkınca söndürülür. İki ayrı eşik kullanmak, alacakaranlıkta lambanın sürekli yanıp sönmesini önler.

const int LDR_PINI = A0;
const int LED_PINI = 9;
const int KARANLIK_ESIGI = 300;   // bunun altinda lamba yanar
const int AYDINLIK_ESIGI = 400;   // bunun ustunde lamba soner

bool lambaAcik = false;

void setup() {
  pinMode(LED_PINI, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int isik = analogRead(LDR_PINI);
  Serial.println(isik);
  if (!lambaAcik && isik < KARANLIK_ESIGI) {
    lambaAcik = true;
    digitalWrite(LED_PINI, HIGH);
  } else if (lambaAcik && isik > AYDINLIK_ESIGI) {
    lambaAcik = false;
    digitalWrite(LED_PINI, LOW);
  }
  delay(200);
}

Lambanın ışığı LDR'ye düşmemelidir; düşerse lamba yanınca ortam aydınlık sanılır ve döngü başlar. 220V bir lambayı yakmak için LED yerine röle modülü kullanılır. Arduino kullanmadan aynı işi 5V tek kanal LDR ışık kontrollü röle modülü tek başına yapar. Diğer ışık sensörlerini Arduino sensör ve modüller kategorisinde bulabilirsiniz.

Sık sorulan sorular

LDR lüks (lux) ölçebilir mi?

LDR ile hassas lüks ölçümü yapılamaz; yalnızca ortamın görece aydınlık ya da karanlık olduğunu güvenilir biçimde anlarsınız. LDR'nin tepkisi doğrusal değildir, sıcaklıkla değişir ve aynı modelin parçaları arasında bile fark vardır. Lüks cinsinden ölçüm gerekiyorsa dijital ışık sensörü entegreleri kullanılmalıdır. Gece lambası ve perde kontrolü gibi işlerde LDR yeterlidir.

LDR'nin ters bağlanması sorun olur mu?

Hayır, LDR kutupsuz bir dirençtir ve iki bacağı arasında fark yoktur. Ancak bölücüde LDR ile sabit direncin yeri değiştirilirse okuma ters döner: ışık arttıkça değer azalır. Bu bir arıza değildir; kodda karşılaştırma yönünü değiştirmeniz yeterlidir. Hangi düzeni seçtiğinizi kodun başına not almak sonradan karışıklığı önler.

LDR modülünün DO pini hiç değişmiyorsa ne yapmalıyım?

DO pini hiç değişmiyorsa önce trimpotu iki yönde yavaşça çevirerek eşiği ortamın ışık düzeyine getirin. Trimpot uç konumdayken çıkış sürekli aynı kalır. Kartın üzerindeki durum LED'i yanıp sönüyorsa modül çalışıyordur ve sorun bağlantıdadır. Arduino kodunda doğru pini okuduğunuzu ve GND'nin ortak olduğunu da kontrol edin.

LDR ESP32 ile kullanılabilir mi?

Evet, LDR ESP32 ile kullanılabilir; bu durumda bölücü 5V yerine 3,3V ile beslenir ve orta nokta bir ADC pinine bağlanır. ESP32'nin ADC'si 12 bittir, okumalar 0 ile 4095 arasında çıkar. Wi-Fi açıkken ADC2 pinleri kullanılamadığı için LDR'yi ADC1 grubundaki bir pine bağlayın. Eşik değerlerini yeni ölçek için yeniden belirleyin.

Özet

  • LDR, ışık arttıkça direnci azalan, kutupsuz bir ışığa duyarlı dirençtir.
  • Arduino'da okumak için LDR 5V ile A0 arasına, 10 kΩ direnç A0 ile GND arasına bağlanır.
  • Bu düzende ışık arttıkça analogRead değeri yükselir; Uno'da değer 0-1023 arasıdır.
  • LDR modülleri trimpotla ayarlanan dijital DO çıkışı verir; 4 pinli olanlar analog AO da sunar.
  • Gece lambasında iki ayrı eşik kullanmak ve lamba ışığını LDR'den uzak tutmak kararsızlığı önler.

Bu yazıdaki ürünler

Diğer yazılar