⚡ Arduino Projeleri Başlangıç

LDR Işık Sensörlü Akıllı Gece Lambası

Havanın kararmasını LDR ışık sensörü ile algılayıp LED'i otomatik yakan akıllı sokak lambası modeli.

LDR Işık Sensörlü Akıllı Gece Lambası

Bu projede, sokak lambalarının ve akıllı ev aydınlatmalarının nasıl çalıştığını öğreneceğiz. Işık miktarını ölçen **LDR (Light Dependent Resistor)** sensörünü kullanarak ortam karardığında yanan, aydınlıkta kendiliğinden sönen bir gece lambası yapacağız.

---

🎯 Projenin Amacı ve Kazanımları

  • Işığa duyarlı direnç (LDR) çalışma prensibini kavramak.
  • Analog giriş pinlerini (`analogRead()`) ve gerilim bölücü devresini anlamak.
  • `if - else` koşul yapılarıyla otomatik karar veren algoritmalar yazmak.
  • **Ortaokul Seviyesi:** 5, 6 ve 7. sınıf Fen Bilimleri (Işık ve Enerji) ile Bilişim Teknolojileri dersleriyle tam uyumludur.
  • ---

    🧰 Gerekli Malzemeler

    1. 1x Arduino Uno (veya Nano)

    2. 1x LDR (Işığa Duyarlı Direnç)

    3. 1x 10kΩ Direnç (Kahverengi-Siyah-Turuncu)

    4. 1x 5mm Beyaz veya Sarı LED

    5. 1x 220Ω Direnç (Kırmızı-Kırmızı-Kahverengi)

    6. 1x Breadboard (Devre Tahtası)

    7. Jumper Kabloları (Erkek-Erkek)

    ---

    🔌 Devre Bağlantı Tablosu

    | Eleman | Arduino Pini | Açıklama |

    | :--- | :--- | :--- |

    | **LED Uzun Bacak (+)** | Dijital Pin 9 | 220Ω direnç üzerinden bağlanır |

    | **LED Kısa Bacak (-)** | GND | Toprak hattı |

    | **LDR 1. Bacak** | 5V | Güç hattı |

    | **LDR 2. Bacak** | A0 & 10kΩ Direnç | 10kΩ direncin diğer bacağı GND'ye gider |

    ---

    💻 Arduino C++ Kodları

    // LDR ve LED Pin Tanımlamaları
    const int ldrPin = A0;   // LDR analog A0 pinine bağlı
    const int ledPin = 9;    // LED dijital 9 pinine bağlı
    int isikDegeri = 0;      // Ortamdan okunan ışık seviyesi
    const int ESİK_DEGERİ = 400; // Karanlık/aydınlık eşik sınırı
    
    void setup() {
      pinMode(ledPin, OUTPUT);
      Serial.begin(9600); // Seri monitör başlatılır (Test için)
    }
    
    void loop() {
      // LDR'den 0 ile 1023 arasında ışık değeri oku
      isikDegeri = analogRead(ldrPin);
      Serial.print("Ortam Işık Seviyesi: ");
      Serial.println(isikDegeri);
    
      // Eğer ortam karanlıksa (ışık değeri eşiğin altındaysa) lambayı yak
      if (isikDegeri < ESİK_DEGERİ) {
        digitalWrite(ledPin, HIGH); // LED yanar
      } else {
        digitalWrite(ledPin, LOW);  // LED söner
      }
      
      delay(100); // 100 milisaniye bekle
    }

    ---

    🛠️ Adım Adım Yapılış

    1. Breadboard üzerine LDR ve LED'i yerleştirin.

    2. LED'in artı bacağına 220Ω direnci bağlayıp Arduino'nun 9 numaralı pinine uzatın.

    3. LDR'nin bir bacağını Arduino'nun 5V pinine, diğer bacağını analog A0 pinine bağlayın.

    4. LDR'nin A0'a giden bacağına aynı zamanda 10kΩ direnci takıp diğer ucunu GND'ye bağlayarak gerilim bölücü oluşturun.

    5. Kodu Arduino IDE üzerinden karta yükleyin.

    6. Elinizi LDR'nin üzerine kapatıp gölge yaptığınızda LED'in yandığını gözlemleyin!

    ---

    💡 Nasıl Çalışır?

    LDR üzerine ışık düştüğünde direnci azalır, karanlıkta ise direnci çok yükselir. Arduino bu direnç değişimini A0 pininden 0 (zifiri karanlık) ile 1023 (çok aydınlık) arasında bir sayı olarak okur. Kodumuzda belirlediğimiz eşik değerinin altına düşüldüğünde LED otomatik açılır.

    ---

    🚀 Ortaokul Geliştirme Görevi (Challenge)

    Bir karton kutudan küçük bir sokak maketi yapın ve LED'i kutunun tepesine bir sokak lambası gibi takın. Gece olunca lambanızın otomatik yanışını izleyin!