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()veconstrain()kullanmak, PWM ile LED parlaklığını ayarlamak
Malzeme listesi
| Malzeme | Adet |
|---|---|
| Arduino Uno (veya muadili) | 1 |
| LDR (ışığa duyarlı direnç) | 1 |
| 10 kΩ direnç | 1 |
| Beyaz veya sarı LED | 1 |
| 220 Ω direnç | 1 |
| Breadboard | 1 |
| Erkek-erkek jumper kablo | ~8 |
| USB kablo | 1 |
Devre bağlantıları

| Bileşen | Bağlantı | Arduino pini |
|---|---|---|
| LDR | Bir bacağı | 5V |
| LDR | Diğer bacağı | A0 |
| 10 kΩ direnç | A0 ile GND arasına | A0 / GND |
| LED | Uzun bacak (220 Ω üzerinden) | D9 |
| LED | Kısa bacak | GND |
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ışı
- LDR’yi takın. LDR’yi breadboard’a yerleştirin. Bir bacağını Arduino’nun 5V pinine bağlayın.
- 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.
- 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.
- Kodu yükleyin. Arduino IDE’de kartınızı ve portu seçip Yükle‘ye basın.
- 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
aydinlikDegervekaranlikDegeryerine yazıp kodu tekrar yükleyin. - 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.
