Arduino İle LDR Kullanımı
Arduino dersleri serimizde bolca uygulama yapmaya devam ediyoruz. Bu yazımızda kurduğumuz devredeki INPUT değerine göre OUTPUT çıkışının otonom olarak nasıl değiştiğini göreceğiz.
Yani bir sensör-aktüatör algoritması yazacağız.
Daha önceki yazımızda for döngüsünden bahsetmiştik >> For Döngüsü ile Kara Şimşek Uygulaması Yapalım !
Kısaca LDR Modülüne Bakalım
LDR ‘Light Dependent Resistor’ tamlamasının kısaltmasından gelmektedir ve anlamı ışığa bağımlı dirençtir.
LDR ayrıca foto direnç olarak da adlandırılır. Bir direnç çeşidi olmasının yanında aynı zamanda bir pasif sensör olan LDR, ışık şiddetine bağlı olarak yapısında değişiklik gösterir.
Bu Ortamdan aldığı fiziksel değişimden faydalanarak çıkışında da bir değişiklik gösterebildiği için sensör görevi gördüğünü söyleyebiliriz.
Elektronik devrelerde LDR’yi tekli halde yukarıdaki şekilde görüldüğü gibi kullanabiliriz. Ayrıca LDR ile bir kontrolcünün daha kolay kullanımı için geliştirilen LDR modüllerini de aşağıdaki şekildeki gibi inceleyebiliriz.
LDR hakkında daha detaylı bilgi edinmek istiyorsanız yazımızı inceleyebilirsiniz >> LDR Nedir? Foto Dirençlerin Çalışma Mantığı
Bu yazımızda karanlıkta çalışan LDR devresi uygulaması yapacağız. Yani aslında LDR ile ışık kontrolü yapmış olacağız. Hemen gerekli malzeme listesini inceleyelim ve uygulamaya başlayalım.
Gerekli malzemeler: (gerekli malzemeler aşşağıda verilmiştir)
Karanlıkta LED Yakan LDR Devresini Kuralım
LDR LED devresi için ihtiyacımız olan malzemeler hazır ise aşağıdaki gibi devremizi kuralım.

Devremiz de hazır ise Arduino LDR kodunu aşağıdaki gibi yazabiliriz. Hem kod satırlarında hem de videomuzda kodun detaylı anlatımını inceleyebilirsiniz.
#define led 3 //3.Pinde LED olduğunu tanımlıyoruz
void setup() {
pinMode(led, OUTPUT); //LED'in çıkış elemanı olduğunu belirtiyoruz
Serial.begin(9600); //9600 Baundluk bir seri haberleşme başlatıyoruz
}
void loop() {
int isik = analogRead(A0); //Işık değişkenini A0 pinindeki LDR ile okuyoruz
Serial.println(isik); //Okunan değeri seri iletişim ekranına yansıtıyoruz
delay(50);
if (isik > 900) { //Okunan ışık değeri 900'den büyük ise
digitalWrite(led, LOW); //LED yanmasın
}
if (isik < 850) { //Okunan ışık değeri 850'den küçük ise
digitalWrite(led, HIGH); //LED yansın
}
}
Arduino ile Işık Seviyesi Ölçmek
Bu uygulamamızda da 4 adet LED’imiz, LDR’nin algıladığı ışık miktarına göre değişik sayılarda
Kodumuz ise şu şekilde:
int ledler[] = {
4,
5,
6,
7
};
int led_sayisi = 4;
int ldr_pin = A0;
int deger = 0;
void setup() {
for (int i = 0; i < led_sayisi; i++) {
pinMode(ledler[i], OUTPUT);
}
}
void loop() {
deger = analogRead(ldr_pin);
if (deger > 0 && deger <= 255) {
digitalWrite(ledler[0], HIGH);
digitalWrite(ledler[1], LOW);
digitalWrite(ledler[2], LOW);
digitalWrite(ledler[3], LOW);
}
if (deger > 256 && deger <= 511) {
digitalWrite(ledler[0], HIGH);
digitalWrite(ledler[1], HIGH);
digitalWrite(ledler[2], LOW);
digitalWrite(ledler[3], LOW);
}
if (deger > 512 && deger <= 767) {
digitalWrite(ledler[0], HIGH);
digitalWrite(ledler[1], HIGH);
digitalWrite(ledler[2], HIGH);
digitalWrite(ledler[3], LOW);
}
if (deger > 768 && deger <= 1023) {
digitalWrite(ledler[0], HIGH);
digitalWrite(ledler[1], HIGH);
digitalWrite(ledler[2], HIGH);
digitalWrite(ledler[3], HIGH);
}
delay(100);
}
Bu uygulamamızda, analog giriş kullanarak LDR’nin algıladığı ışık seviyesini sayısal bir değere dönüştürdük. Bu sayısal değer 0 ile 1023 arasında değiştiğinden, her 255 adımda bir fazla LED’in yanmasını sağladık.
Yorumunuzu bırakın
Not: HTML Geçersizdir!