Bu projede Arduino Uno, KY-018 LDR ışık sensörü, LED ve direnç kullanarak ortam karardığında otomatik olarak yanan basit bir gece lambası devresi yapacağız. KY-018 LDR modülü ortam ışığına göre analog değer üretir. Arduino bu değeri okuyarak ortamın aydınlık mı karanlık mı olduğunu algılar.
Ortam karardığında LED yanar, ortam aydınlandığında LED otomatik olarak söner. Bu proje, Arduino ile analog sensör okuma, eşik değeri kullanma ve dijital çıkış kontrolü konularını öğrenmek için oldukça uygundur.
Projenin Amacı
Bu projenin amacı, ortam ışık seviyesini KY-018 LDR sensörü ile ölçmek ve belirlenen eşik değerine göre LED’i otomatik olarak kontrol etmektir. Ortam karanlık olduğunda LED yanar, ortam yeterince aydınlık olduğunda LED söner.
KY-018 LDR Sensörü Nedir?
KY-018 LDR modülü, ışığa duyarlı direnç yani LDR içeren bir ışık algılama modülüdür. LDR’nin direnç değeri üzerine düşen ışık miktarına göre değişir. Bu değişim Arduino tarafından analog değer olarak okunabilir.
KY-018 modülü üzerinde genellikle S / AO, + ve - pinleri bulunur. S veya AO pini analog çıkıştır. Arduino’nun A0 gibi analog giriş pinlerine bağlanarak ortam ışık seviyesi okunabilir.
Kullanılan Malzemeler
| Malzeme | Açıklama / Ürün Linki |
|---|---|
| Arduino Uno | Arduino Uno R3 Klon + USB Kablo |
| KY-018 LDR Işık Sensörü | KY-018 LDR Işık Sensörü |
| LED | 5mm LED |
| Direnç | LED için 220R / 330R Direnç |
| Breadboard | Büyük Breadboard 830 Pin |
| Jumper Kablo | 40 Adet Erkek-Dişi Jumper Kablo 20cm |
Devre Bağlantıları
Bu projede KY-018 LDR modülünün analog çıkış pini Arduino’nun A0 pinine bağlanır. LED ise direnç üzerinden Arduino’nun D9 pinine bağlanır.
| Bileşen | Arduino Bağlantısı |
|---|---|
| KY-018 S / AO | A0 |
| KY-018 + | 5V |
| KY-018 - | GND |
| LED uzun bacak | Direnç üzerinden D9 |
| LED kısa bacak | GND |
Proje Uygulama Videosu
Devre bağlantısı, kod yükleme, Seri Monitör üzerinden LDR değerlerini izleme ve LED kontrol testini aşağıdaki video alanına ekleyebilirsiniz.
Arduino KY-018 LDR Otomatik Gece Lambası Kodu
Aşağıdaki kod, KY-018 LDR sensöründen gelen analog değeri okur. Okunan değer belirlenen eşik değerinin altına düştüğünde LED yanar, eşik değerinin üstündeyse LED söner.
/*
Proje: KY-018 LDR ile Otomatik Gece Lambası
Platform: Arduino Uno
Hazırlayan: Robomer
Web: https://robomer.com
Bağlantılar:
KY-018 S / AO -> A0
KY-018 + -> 5V
KY-018 - -> GND
LED uzun bacak -> Direnç üzerinden D9
LED kısa bacak -> GND
*/
const int ldrPin = A0;
const int ledPin = 9;
int threshold = 500;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
int ldrValue = analogRead(ldrPin);
Serial.print("LDR Degeri: ");
Serial.println(ldrValue);
if (ldrValue < threshold) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
delay(300);
}
Kod Nasıl Çalışır?
Pinler Tanımlanır
const int ldrPin = A0;
const int ledPin = 9;
Bu satırlarda LDR sensörünün bağlı olduğu analog pin A0, LED’in bağlı olduğu dijital pin ise D9 olarak tanımlanır.
Eşik Değeri Belirlenir
int threshold = 500;
threshold değişkeni, LED’in hangi ışık seviyesinde yanıp söneceğini belirler. Bu örnekte eşik değeri 500 olarak ayarlanmıştır. Ortamınıza göre bu değeri 300, 400, 600 veya 700 gibi farklı değerlerle değiştirebilirsiniz.
LDR Değeri Okunur
int ldrValue = analogRead(ldrPin);
analogRead() fonksiyonu Arduino’nun A0 pinindeki analog gerilim değerini okur.
Arduino Uno’da analog okuma sonucu 0 ile 1023 arasında bir değer döndürür.
Değer Seri Monitör’e Yazdırılır
Serial.print("LDR Degeri: ");
Serial.println(ldrValue);
Bu satırlar, KY-018 sensöründen okunan değeri Arduino IDE üzerindeki Seri Monitör ekranına yazdırır. Böylece ortam ışığına göre değerin nasıl değiştiğini görebilir ve en uygun eşik değerini belirleyebilirsiniz.
Ortam Karanlıksa LED Yakılır
if (ldrValue < threshold) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
Bu koşulda LDR’den okunan değer eşik değerinden küçükse ortam karanlık kabul edilir ve LED yakılır. Değer eşik değerinin üzerindeyse LED söndürülür.
< işaretini > olarak değiştirebilirsiniz.
Seri Monitör ile LDR Değeri Nasıl Kontrol Edilir?
Eşik değerini doğru belirlemek için Seri Monitör üzerinden LDR değerlerini takip edebilirsiniz.
- Arduino IDE’yi açın.
- Kodu Arduino Uno kartınıza yükleyin.
- Sağ üstteki Seri Monitör butonuna tıklayın.
- Baud değerinin 9600 olduğundan emin olun.
- LDR sensörünü elinizle kapatarak veya üzerine ışık tutarak değerlerin değişimini izleyin.
Karanlık ve aydınlık ortamdaki değerleri karşılaştırarak threshold değerini projenize göre ayarlayabilirsiniz.
Eşik Değeri Nasıl Değiştirilir?
LED’in hangi ışık seviyesinde yanacağını değiştirmek için kodun başındaki threshold değerini düzenleyebilirsiniz.
int threshold = 500;
Eğer LED çok erken yanıyorsa veya çok geç yanıyorsa bu değeri değiştirerek sistemi kalibre edebilirsiniz. Seri Monitör’den aldığınız karanlık ve aydınlık değerlerin ortasına yakın bir eşik değeri seçmek genellikle daha doğru sonuç verir.
Bu Proje Nerelerde Kullanılabilir?
- Otomatik gece lambası
- Ortam ışığına göre LED kontrolü
- Akıllı aydınlatma sistemi
- Güneş ışığı algılama projeleri
- Çizgi izleyen robot mantığını anlamaya yönelik eğitim projeleri
- Ekran parlaklığı veya lamba kontrolü simülasyonları
Sık Karşılaşılan Hatalar
- LED hiç yanmıyor: LED’in uzun bacağının direnç üzerinden D9 pinine, kısa bacağının GND’ye bağlı olduğundan emin olun.
- LED sürekli yanıyor: Ortam karanlık olabilir veya
thresholddeğeri çok yüksek seçilmiş olabilir. - LED ters çalışıyor: Koddaki
<işaretini>olarak değiştirmeyi deneyin. - LDR değeri değişmiyor: KY-018 modülünün S/AO pininin A0’a bağlı olduğundan emin olun.
- Seri Monitör’de veri görünmüyor: Baud değerinin 9600 olduğundan emin olun.
- LED zarar gördü: LED’i doğrudan Arduino pinine bağlamayın; mutlaka seri direnç kullanın.
KY-018 LDR Otomatik Gece Lambası Kaynak Kodları
Proje kodlarını, bağlantı notlarını ve geliştirme fikirlerini GitHub deposu üzerinden paylaşabilirsiniz.
Robomer’de Bulabileceğiniz İlgili Ürünler
KY-018 LDR Işık Sensörü
Ortam ışık seviyesini Arduino ile analog olarak okumak için kullanılan ışık algılama modülüdür.
Ürünü İnceleArduino UNO R3 Klon + USB Kablo
KY-018 LDR sensöründen gelen analog değeri okuyup LED kontrolü yapmak için kullanılan geliştirme kartıdır.
Ürünü İnceleSonuç
Arduino ile KY-018 LDR otomatik gece lambası projesi, analog sensör okuma ve eşik değerine göre dijital çıkış kontrolü konularını öğrenmek için ideal bir başlangıç projesidir. Bu projede KY-018 LDR sensöründen gelen analog değer okunur ve ortam karardığında LED otomatik olarak yakılır.
Projeyi daha ileri seviyeye taşımak için LED yerine röle modülü ekleyebilir, daha güçlü aydınlatmaları kontrol edebilir veya LCD ekran ile ortam ışık seviyesini anlık olarak gösterebilirsiniz.
Arduino Sensör Projelerinizi Robomer ile Geliştirin
Arduino kartları, LDR ışık sensörleri, LED, direnç, breadboard, jumper kablo ve proje setlerini Robomer üzerinden inceleyebilirsiniz.
Robomer Sensörler Kategorisini İncele