DIY ELECTRONICSEN

← Tüm projeler

Gece Lambası (LDR)

Başlangıç20 dk

Ortam kararınca kendiliğinden yanan bir gece lambası. LDR (ışık sensörü) ile 100 kΩ direnç bir gerilim bölücü kurar; Arduino ışık seviyesini A0 pininden okur ve karanlıkta 9 numaralı pindeki LED’i PWM ile loş yakar. Analog okuma, eşik değeri ve PWM’i öğretir. Ek kütüphane gerekmez.

Uygulamada adım adım yap

Gerekli malzemeler

Bağlantı adımları

  1. 1

    Breadboard’a güç ver

    Breadboard’a güç ver

    Kırmızı jumper kabloyu Arduino’nun POWER bölümündeki 5V pininden breadboard’un altındaki kırmızı çizgili (+) sıraya, siyah kabloyu yanındaki GND pininden mavi çizgili (−) sıraya tak. Devrenin geri kalanı gücünü bu iki sıradan alır.

    • Arduino 5V → alttaki kırmızı çizgili (+) sıra
    • Arduino GND → alttaki mavi çizgili (−) sıra
  2. 2

    LDR’yi tak ve A0’a bağla

    LDR’yi tak ve A0’a bağla

    LDR’yi breadboard’un alt yarısına, 3. ve 6. sütunlara tak; LDR’nin yönü yoktur, bacakları ters takılabilir. Kısa bir kırmızı kabloyla + sırayı 3. sütuna bağla. Sarı kabloyla Arduino’nun A0 analog pinini 6. sütuna bağla: Arduino ışık seviyesini buradan okur.

    • LDR’nin bir bacağı → 3. sütun
    • LDR’nin diğer bacağı → 6. sütun
    • + sıra → 3. sütun
    • Arduino A0 → 6. sütun
  3. 3

    100 kΩ direnci ekle

    100 kΩ direnci ekle

    100 kΩ direnci (kahverengi-siyah-sarı) 6. sütundan − sıraya tak. LDR ile bu direnç bir gerilim bölücü oluşturur: karanlıkta LDR’nin direnci artar, A0’daki gerilim düşer ve okunan değer azalır; aydınlıkta tersi olur. Direnç olmazsa A0 boşta kalır ve rastgele değerler okunur. Direncin yönü önemli değildir.

    • 100 kΩ direncin bir bacağı → 6. sütun
    • 100 kΩ direncin diğer bacağı → − sıra
  4. 4

    LED’i ve direncini bağla

    LED’i ve direncini bağla

    Kırmızı LED’i 10. ve 11. sütunlara tak: kısa bacak (−) 10. sütuna, uzun (bükük) bacak (+) 11. sütuna gelmeli; ters takılan LED yanmaz. 100 Ω direnci (kahverengi-siyah-kahverengi) 11. sütundan 15. sütuna tak. Mavi kabloyla Arduino’nun 9 numaralı pinini 15. sütuna, kısa bir siyah kabloyla 10. sütunu − sıraya bağla. 9 numaralı pin PWM destekler (yanında ~ işareti var); kod LED’i bu sayede loş yakar. LED’i koddaki 100 yerine 255 ile tam parlaklıkta yakacaksan 100 Ω yerine 220 Ω kullan: 100 Ω ile yaklaşık 30 mA geçer, bu da Arduino pininin rahat verebileceğinden fazladır.

    • LED kısa bacak (−) → 10. sütun
    • LED uzun bacak (+) → 11. sütun
    • 100 Ω direnç → 11. ve 15. sütunlar
    • Arduino pin 9 → 15. sütun
    • 10. sütun → − sıra

Arduino kodu

#define LDR_PIN A0
#define LED_PIN 9

// Bu eşik değerini ezbere yazamazsın. Odandaki ışık durumuna göre
// Serial Monitor'den okuduğun değerlere bakarak kalibre etmelisin.
const int KARANLIK_ESIGI = 400;

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

void loop() {
  int ldrDegeri = analogRead(LDR_PIN);

  // Hata ayıklama için sensör verisini izle
  Serial.print("LDR Degeri: ");
  Serial.println(ldrDegeri);

  // LDR karanlıkta yüksek direnç gösterir. A0'a giden voltaj düşeceği için
  // okunan analog değer azalır.
  if (ldrDegeri < KARANLIK_ESIGI) {
    // Gece lambası olduğu için digitalWrite ile 1/0 yapmak yerine
    // PWM ile parlaklığı sınırlandırarak (0-255 arası) daha loş yakıyoruz.
    analogWrite(LED_PIN, 100);
  } else {
    analogWrite(LED_PIN, 0); // Ortam aydınlıksa kapat
  }

  delay(200); // ADC'yi sürekli yormamak ve Serial'i okunabilir tutmak için gecikme
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
LDR Degeri: 366

Sonuç

Ortamdaki ışık azaldığında LED loş bir şekilde yanar; ortam yeniden aydınlanınca söner. Denemek için LDR’nin üstünü elinle kapat. LED hiç yanmıyor ya da hep yanıyorsa Seri Monitörde karanlıkta ve aydınlıkta okuduğun değerlere bak ve koddaki KARANLIK_ESIGI değerini (400) ikisinin arasına ayarla.

Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.

Uygulamada adım adım yap