Arduino projelerinde LDR (Light Dependent Resistor), ışık seviyesine bağlı olarak çalışan devreler oluşturmak için kullanılır. Bu yazıda, LDR ile ışık seviyesini algılayıp bir LED’in otomatik olarak yanıp sönmesini sağlayan bir lamba uygulamasını gerçekleştireceğiz.
Proje İçin Gerekli Malzemeler
- Arduino Uno (veya benzeri bir model)
- 1 x LDR (Fotorezistör)
- 1 x 10k Ohm Direnç (pull-down direnci)
- 1 x LED (örneğin, beyaz LED)
- 1 x 220 Ohm Direnç (LED için akım sınırlama direnci)
- Breadboard
- Bağlantı Kabloları
Devre Bağlantısı

LDR Bağlantısı
- LDR’nin bir bacağına 5V pinini bağlayın.
- Diğer bacağını, Arduino’nun A0 analog pinine bağlayın.
- Ayrıca, LDR’nin Arduino A0’a bağlı bacağına paralel olarak bir 10k Ohm direnç bağlayarak GND’ye bağlayın (pull-down direnci).
LED Bağlantısı
- LED’in uzun bacağını (anod) Arduino’nun dijital 9 numaralı pinine bağlayın.
- Kısa bacağını (katod), 220 Ohm direnç üzerinden GND’ye bağlayın.
Çalışan uygulamayı görmek için tıklayınız.
Arduino Kodu
Aşağıdaki kod, LDR’den alınan analog veriye göre LED’in yanıp sönmesini kontrol eder.
// Pin Tanımlamaları
const int ldrPin = A0; // LDR'nin bağlı olduğu analog pin
const int ledPin = 9; // LED'in bağlı olduğu dijital pin
int ldrValue = 0; // LDR'den okunan değer
// Eşik Değeri (ışık seviyesi)
const int threshold = 500;
void setup() {
pinMode(ledPin, OUTPUT); // LED çıkış olarak ayarlandı
Serial.begin(9600); // Seri iletişim başlatıldı
}
void loop() {
ldrValue = analogRead(ldrPin); // LDR'den analog veri oku
// Seri monitöre LDR değeri yazdır
Serial.print("LDR Değeri: ");
Serial.println(ldrValue);
// Işık seviyesi kontrolü
if (ldrValue < threshold) {
digitalWrite(ledPin, HIGH); // LED'i yak
} else {
digitalWrite(ledPin, LOW); // LED'i söndür
}
delay(100); // Çok hızlı okumayı önlemek için küçük bir gecikme
}
Kod Açıklamaları
analogRead(ldrPin):
LDR’den gelen analog değeri okur. Bu değer 0 (karanlık) ile 1023 (parlak) arasında değişir.
Eşik Değeri (threshold):
LDR’den okunan değere göre ışık seviyesi değerlendirilir. Eşik değerinin altında bir değer algılandığında LED yanar, aksi halde söner.
digitalWrite(ledPin, HIGH):
LED’i yakar.
digitalWrite(ledPin, LOW):
LED’i söndürür.
Serial.print ve Serial.println:
LDR’den alınan değerler, seri monitörde görüntülenir. Bu, uygulamanın doğru çalışıp çalışmadığını kontrol etmek için kullanışlıdır.
Projenin Çalışma Prensibi
- Ortamdaki ışık seviyesi düşük olduğunda (örneğin, karanlık bir ortamda), LDR’den okunan değer düşer.
- LDR’den alınan değer eşik değerinin altına düştüğünde LED otomatik olarak yanar.
- Ortamdaki ışık seviyesi yükseldiğinde, LED otomatik olarak söner.
Ekstra İpuçları
- Ayarlanabilir Eşik Değeri: Potansiyometre kullanarak eşik değerini manuel olarak ayarlayabilirsiniz.
- Çoklu LED Kontrolü: Birden fazla LED’i kontrol etmek için farklı eşik değerleri belirleyebilirsiniz.
- Otomasyon Projeleri: Bu devreyi röle modülüyle birleştirerek gerçek bir lambayı otomatik olarak açıp kapatabilirsiniz.
Bu uygulama, LDR ve Arduino kullanarak temel otomasyon projelerini öğrenmek için mükemmel bir başlangıçtır. Hem ışık sensörlerini hem de Arduino’nun analog pinlerini kullanmayı öğrenerek daha karmaşık projelere geçebilirsiniz.

Bu Gönderiye Yorum Yapılmamış