Arduino ile Akıllı Gece Lambası Yapımı – LDR Işık Sensörü (Malzemeler ve Kodlar)

Arduino ile akıllı gece lambası projesi kapak görseli

Proje ne yapıyor?

Ortam karardıkça kendiliğinden yanan, aydınlandıkça sönen bir gece lambası yapıyoruz. Işığa duyarlı direnç (LDR) ortamdaki ışığı ölçer; Arduino da LED’in parlaklığını buna göre ayarlar. Oda tamamen karanlıkken LED en parlak hâlde yanar.

  • Yaş grubu: 9 yaş ve üzeri
  • Seviye: Başlangıç
  • Süre: Yaklaşık 30 dakika
  • Bu projede öğrenecekleriniz: Analog sensör okumak, map() ve constrain() kullanmak, PWM ile LED parlaklığını ayarlamak

Malzeme listesi

MalzemeAdet
Arduino Uno (veya muadili)1
LDR (ışığa duyarlı direnç)1
10 kΩ direnç1
Beyaz veya sarı LED1
220 Ω direnç1
Breadboard1
Erkek-erkek jumper kablo~8
USB kablo1

Devre bağlantıları

Arduino ile LDR ışık sensörlü akıllı gece lambası devre şeması
BileşenBağlantıArduino pini
LDRBir bacağı5V
LDRDiğer bacağıA0
10 kΩ dirençA0 ile GND arasınaA0 / GND
LEDUzun bacak (220 Ω üzerinden)D9
LEDKısa bacakGND

LDR ve 10 kΩ direnç birlikte bir gerilim bölücü oluşturur. Işık arttıkça A0’daki değer yükselir.

Kodlar

// Arduino Akıllı Gece Lambası - ozandamci.com

const int ldrPin = A0;
const int ledPin = 9;   // PWM destekli pin (~ işaretli)

// Kendi odanıza göre ayarlayın (Seri Port Ekranı'ndaki değerlere bakın)
const int karanlikDeger = 200;  // bu değerin altı "tam karanlık"
const int aydinlikDeger = 700;  // bu değerin üstü "yeterince aydınlık"

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

void loop() {
  int isik = analogRead(ldrPin);   // 0 - 1023 arası
  Serial.print("Isik: ");
  Serial.println(isik);

  // Değeri sınırların içine al, sonra ters çevirerek parlaklığa dönüştür
  int sinirli = constrain(isik, karanlikDeger, aydinlikDeger);
  int parlaklik = map(sinirli, karanlikDeger, aydinlikDeger, 255, 0);

  analogWrite(ledPin, parlaklik);
  delay(100);
}

Adım adım yapılışı

  1. LDR’yi takın. LDR’yi breadboard’a yerleştirin. Bir bacağını Arduino’nun 5V pinine bağlayın.
  2. Gerilim bölücüyü kurun. LDR’nin diğer bacağını A0’a bağlayın. Aynı noktaya 10 kΩ direnci takıp direncin diğer ucunu GND’ye bağlayın.
  3. LED’i takın. LED’in uzun bacağına 220 Ω direnç bağlayıp D9’a götürün; kısa bacağını GND’ye bağlayın.
  4. Kodu yükleyin. Arduino IDE’de kartınızı ve portu seçip Yükle‘ye basın.
  5. Kalibre edin. Araçlar → Seri Port Ekranı‘nı açın. Odanın normal ışığındaki değeri ve LDR’nin üstünü elinizle kapattığınızdaki değeri not edin. Bu iki sayıyı kodda aydinlikDeger ve karanlikDeger yerine yazıp kodu tekrar yükleyin.
  6. Test edin. LDR’nin üstünü elinizle yavaşça kapatın. LED gittikçe parlamalı.

Sorun giderme

  • LED hep tam parlak veya hep sönük: Kalibrasyon değerleri odanıza uymuyor olabilir; 5. adımı tekrarlayın.
  • Tersine çalışıyor (aydınlıkta yanıyor): LDR ile 10 kΩ direncin yerleri değişmiş; LDR 5V tarafında olmalı.

Kendiniz deneyin

  • LED yerine RGB LED kullanıp karanlıkta renk değiştiren bir lamba yapın.
  • Lambayı karton veya 3D yazıcıyla basılmış bir kutunun içine yerleştirin.

Daha fazla proje için: Bu ve benzeri projeleri adım adım anlattığım Arduino Projeleri kitabıma göz atabilirsiniz.

Bir Cevap Yazın