Arduino ile ldr kullanırken öncelikler amacımızı belirlemeliyiz. Ldr ışık şiddetini ölçmek için kullanılan sensördür. Ölçtüğümüz değere göre işlem belirlemeliyiz. Birkaç ldr ile güneş takip sistemi yapılabilir. Bu örnek çalışmamızda led yakmayı ve seri porta LDR değerini göndermeyi yapacağız. Öncelikle devreyi resimdeki gibi yapalım.

Birkaç ldr kullanarak aralarındaki farka göre bir yönlendirme yapabiliriz.
Tek led için örenek kodumuz:
/*
* Proje: LDR ile Otomatik Gece Lambası
* Bağlantılar:
* - LED: Dijital Pin 13
* - LDR: Analog Pin A0 (10k ohm direnç ile voltaj bölücü)
*/
const int ledPin = 13; // LED'in bağlı olduğu dijital pin
const int ldrPin = A0; // LDR'nin bağlı olduğu analog pin
int isikDegeri = 0; // Sensörden okunan ham veriyi saklar
int esikDegeri = 500; // LED'in yanması için sınır değer (Kendi ortamına göre ayarla)
void setup() {
pinMode(ledPin, OUTPUT); // LED pini çıkış olarak ayarlandı
Serial.begin(9600); // Değerleri görmek için seri port başlatıldı
}
void loop() {
// LDR'den gelen veriyi oku (0 - 1023 arası)
isikDegeri = analogRead(ldrPin);
// Okunan değeri Seri Port Ekranı'na yazdır (Hata ayıklama için)
Serial.print("Isik Seviyesi: ");
Serial.println(isikDegeri);
// Karanlık kontrolü: Eğer ışık eşik değerinden küçükse LED'i yak
if (isikDegeri < esikDegeri) {
digitalWrite(ledPin, HIGH);
}
// Ortam aydınlıksa LED'i söndür
else {
digitalWrite(ledPin, LOW);
}
delay(100); // Kararlı okuma için kısa bir bekleme
}
Ledin ne kadar ışıkta yanacağını esikDegeri değişkeni ile kontrol edebiliriz. Erken yanarsa değeri yükseltip geç yanarsa da azaltabiliriz. Ortam ışık miktarına göre ledimiz aç/kapa yapacaktır. Devremizin karalı çalışması için Ldr , ledimizden gelen ışığa maruz kalmamalıdır.
Henüz yorum yapılmamış. İlk yorumu siz yapın!