Arduino Devreleri #9 Arduino LDR İle Işığa Duyarlı Led Alarm Devresi
Merhabalar, bu yazımızda Arduino uygulamaları serisinden Arduino Devreleri #9 Arduino LDR İle Işığa Duyarlı Led Alarm Devresi hakkında bilgi vereceğim. LDR nedir? LDR nerelerde kullanılır? LDR sağlamlık kontrolü nasıl yapılır? LDR ye neden direnç bağlanır? LDR seri monitörde nasıl okunur? gibi soruların cevabını bu yazımızda bulacaksınız.
Arduino programı ayrıntılı kod kısmı, devre bağlantı şeması, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.
Bu konuya geçmeden önce LDR nedir? çalışması, kullanım alanları, sağlamlık kontrolü gibi konularda hakkında bilgi almak isterseniz aşağıdaki bağlantıya tıklayarak öğrenebilirsiniz.
https://egitim.ahmetcandemir.com.tr/ldr-nedir-ne-ise-yarar/
KOD BÖLÜMÜ (LDR SERİ MONİTÖR)
// LDR Seri Port Ekranı Bilgi Okuma
void setup()
{
Serial.begin(9600); //Seri haberleşme hızını ayarlıyoruz
}
void loop()
{
int isik = analogRead(A0); //Analog A0 portundan sinyal okunmasını sağladık.
Serial.println(isik); // Değişen direnç değerinin Serial Portta gösterilmesini sağladık
delay(250); // 250 milisaniye bekleyerek saymasını istedik
}
DEVRE BAĞLANTI ŞEMASI
Yukarıdaki devrede seri port ekranı açık iken ldr üzeri kapatılıp açıldığında seri port ekranında değişen değerler görülebilecektir.
KOD BÖLÜMÜ: (LDR LED UYGULAMASI)
// LDR Işığa Duyarlı Led Diyot Uygulaması
int led = 7; // Led'in bağlı olduğu pin
void setup()
{
pinMode(led,OUTPUT); // Led'in bağlı olduğu pini çıkış olarak ayarladık.
Serial.begin(9600); //Seri haberleşme hızını ayarlıyoruz
}
void loop()
{
int isik = analogRead(A0); //isik isimli değişken tanımlayarak Analog A0 portundan sinyal okunmasını sağladık.
Serial.println(isik); // Değişen direnç değerinin Seri Portta gösterilmesini sağladık
delay(250); // 250 milisaniye bekleyerek değer göstermesini istedik
if(isik<800) // LDR direnç değeri 800 altına indiğinde aşağıdaki işlemleri yap diyoruz.
{
digitalWrite(led, HIGH); // Led'e enerji göndererek ışık vermesini sağladık.
}
else
{
digitalWrite(led, LOW); // Led'in enerjisini keserek ışığın sönmesini sağladık.
}
}
DEVRENİN ÇALIŞMASI:
Kod kısmında if(isik<800) satırında yer alan 800 değeri ortam ışığına göre değişen bir değerdir. Devreyi kurup çalıştırdığınızda seri port ekranında bir değer okursunuz. Elinizi LDR üzerine kapattığınızda bu okuduğunuz değer düşecektir. Siz hangi değeri referans alıp o değer altına düştüğünde ışığın yanmasını istiyorsanız 800 değeri ile belirlediğiniz değeri değiştirin. Böylece sizin belirlediğiniz ışık şiddetine göre devre çalışacaktır.
DEVRE BAĞLANTI ŞEMASI
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
Breadboard
1 adet led diyot
1 adet 220 Ω direnç
1 adet 10 KΩ direnç
1 adet LDR
6 adet iki ucu erkek jumper kablo
Breadboard üzerine LDR yerleştirilir. LDR nin bir bacağına 10 Kohm luk direnç yerleştirilir. LDR nin boştaki bacağı Arduino nun 5 V. pinine bağlanır. Direnç ile LDR nin birleştiği noktadan kablo bağlantısı alınarak Arduino nun A0 pinine bağlanır. Board üzerine led diyot yerleştirilir. Led diyotun artı bacağına 220 Ohm’luk direnç bağlanır. Direncin diğer ucu Arduino da 7 numaralı pine bağlanır. Led diyotun eksi bacağı ile 10KOhm’luk direncin boştaki bacağı, board üzerinde birleştirilerek Arduino’nun GND pinine bağlanır ve devre tamamlanır.
Eğer isterseniz devreye buzzer bağlayarak ışığa duyarlı bir alarm devresi de oluşturabilirsiniz. Bu durumda kod kısmı aşağıdaki gibi olacaktır.
KOD BÖLÜMÜ: (LDR LED + BUZZER UYGULAMASI)
// LDR Işığa Duyarlı Led Diyot + Buzzer Uygulaması
int led=7; // Led'in + bacağının bağlı olduğu pin
int buzzer=8; // Buzzer'in + bacağının bağlı olduğu pin
void setup() {
pinMode(led, OUTPUT); // Led'in bağlı olduğu pini çıkış olarak ayarladık.
pinMode(buzzer, OUTPUT); // Buzzer'ın bağlı olduğu pini çıkış olarak ayarladık.
Serial.begin(9600); //Seri haberleşme hızını ayarlıyoruz
}
void loop() {
int isik = analogRead(A0); //Analog A0 portundan sinyal okunmasını sağladık.
Serial.println(isik); // Değişen direnç değerinin Serial Portta gösterilmesini sağladık
delay(250); // 250 milisaniye bekleyerek saymasını istedik
if(isik>180) // LDR direnç değeri 180 üzerine çıktığında aşağıdaki işlemleri yap diyoruz.
{
digitalWrite(led, LOW); //Led'in gücünü keserek ışığın sönmesini sağladık.
digitalWrite(buzzer, LOW); //Buzzer'ın gücünü keserek susmasını sağladık.
}
else
{
digitalWrite(led, HIGH); //Led'e güç göndererek ışık vermesini sağladık.
digitalWrite(buzzer, HIGH); //Buzzer'a güç göndererek ses çıkarmasını sağladık.
}
}
DEVRENİN ÇALIŞMASI:
Bir önceki kod kısmına ilaveten led diyot değişken tanımlamasının altına int buzzer=8; şeklinde bir tanımlama yapılır. void setup içerisine pinMode(buzzer, OUTPUT); komutu ile buzzer pini çıkış olarak tanımlanır. Led diyot yandığında buzzer’ın da ses vermesini istiyorsak, led diyotun yanmasını sağladığımız kod satırının altına digitalWrite(buzzer, HIGH); komutunu, led diyot söndüğünde buzzer’ın da ses vermemesini olmasını istiyorsak, led diyotun sönmesini sağladığımız kod satırının altına digitalWrite(buzzer, LOW); kodunu yazmamız yeterli olacaktır.
Kod kısmında if(isik>180) satırında yer alan 180 değeri ortam ışığına göre değişen bir değerdir. Devreyi kurup çalıştırdığınızda seri port ekranında bir değer okursunuz. Elinizi LDR üzerine kapattığınızda bu okuduğunuz değer düşecektir. Elinizi çekip daha aydınlık bir ışık tuttuğunuzda okuduğunuz değer yükselecektir. Biz bu kod kısmında bir önceki kod kısmında uyguladığımız işlemin tersini yaptık. Siz hangi değeri referans alıp o değerin üstüne çıktığında ışığın yanmasını istiyorsanız 180 değeri ile belirlediğiniz değeri değiştirin. Böylece sizin belirlediğiniz ışık şiddetine göre devre çalışacaktır.
DEVRE BAĞLANTI ŞEMASI
Arduino LDR İle Işığa Duyarlı Led Alarm Devresi
Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da Temel Elektrik- Elektronik, Arduino ve mBlock ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet
Yorum Yap