Sokak lambaları nasıl yanar?
Sokak lambalarını her akşam biri tek tek yakmaz. Üzerlerindeki ışık sensörü hava karardığında lambayı otomatik olarak açar. Bu projede aynısını yapacağız.
LDR nedir?
LDR (ışığa bağımlı direnç), üzerine düşen ışık arttıkça direnci azalan bir parçadır. Arduino direnci doğrudan okuyamaz; bu yüzden LDR'yi 10 kiloohm'luk bir dirençle birlikte gerilim bölücü olarak bağlarız. Böylece ışık değiştikçe A0 pinindeki gerilim de değişir.
Malzemeler
- 1 adet LDR ve 1 adet 10 kiloohm direnç
- 1 adet LED ve 220 ohm direnç
- Arduino UNO, breadboard, kablolar
Bağlantı
- LDR'nin bir ucu 5V'a, diğer ucu A0'a
- 10 kiloohm direnç A0 ile GND arasına
- LED 220 ohm direnç üzerinden 8. pine
Kod
// Codebil Campus - Proje 5: LDR ile Otomatik Gece Lambası
const int LDR = A0;
const int LED = 8;
int esik = 400; // Seri Monitör'e bakarak ortamınıza göre ayarlayın
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int isik = analogRead(LDR); // aydınlıkta büyük, karanlıkta küçük değer
Serial.println(isik);
if (isik < esik) {
digitalWrite(LED, HIGH); // karanlık: lambayı yak
} else {
digitalWrite(LED, LOW); // aydınlık: söndür
}
delay(200);
}
Eşik değerini ayarlamak
Her sınıfın aydınlığı farklıdır. Seri Monitör'ü açıp önce normal ışıkta, sonra LDR'nin üzerini elinizle kapatarak değerleri not edin. Bu iki değerin ortasını esik olarak kullanın.
Geliştir
- LED'i PWM pinine bağlayıp karanlık arttıkça daha parlak yanmasını sağlayın.
- Işık eşiğin etrafında gidip gelirken LED'in titrememesi için iki farklı eşik kullanın (ör. 380'de yan, 420'de sön).
Konuyu pekiştir
3 soruluk kısa test. Bir seçeneğe dokunduğunuzda doğru cevap ve açıklaması görünür.
-
LDR'nin üzerine düşen ışık artınca direnci nasıl değişir?
LDR aydınlıkta düşük, karanlıkta yüksek direnç gösterir.
-
LDR'yi Arduino'ya bağlarken 10 kiloohm direnç neden kullanılır?
Gerilim bölücü, direnç değişimini okunabilir bir gerilime çevirir.
-
Eşik değeri nasıl belirlenmelidir?
Ortam ışığı farklı olduğu için eşik ölçülerek belirlenir.