Arduino İle LDR Nasıl Kullanılır?
Arduino ile LDR nasıl kullanılacağını öğreneceğiz. Öncelikle direk olarak konuya girmeden önce LDR’nin ne olduğunu bilmeyenler var ise açıklayalım.
LDR(Foto direnç) Nedir?
LDR (Light Dependent Resistor), Türkçede “Işığa Bağımlı Direnç” anlamına gelmektedir. Bir diğer adı da foto dirençtir. LDR her ne kadar bir direnç çeşidi olsa da aynı zamanda pasif bir sensördür. LDR’ler bulundukları devrelerde değişen direnç değerleri ile bir çıkış sağlarlar fakat bu işlemi dış ortamdan aldıkları fiziksel bir değişim ile gerçekleştirdiklerinden dolayı bir sensör görevi görmüş olurlar.
Foto dirençler, ışığın yoğunluğunu veya varlığını veya yokluğunu belirtmek için kullanılır. Karanlık olduğunda foto direncin direnci artar ve ışık olduğunda direnç azalır.
İki bacağı olan LDR (foto direnç). Bir bacağı, koda göre bağlanması gereken sinyal pinidir. Diğer bir bacak ise sistemin topraklamasına bağlanması gereken topraklama pini olarak kabul edilir. Bu projede kullanacağımız bir diğer eleman ise Leddir. En basit ifadeyle, ışık yayan diyot (LED), içinden bir elektrik akımı geçtiğinde ışık yayan yarı iletken bir cihazdır. Akımı taşıyan parçacıklar (elektronlar ve delikler olarak bilinir) yarı iletken malzeme içinde bir araya geldiğinde ışık üretilir. Led’in iki bacağı vardır: pozitif ve negatif.
LDR İle Ortamın Işık Seviyesini Ölçme
LDR sensörünün bağlantıları : LDR’nin bir bacağı Arduino’nun 5V pinine bağlanmalıdır. Daha sonra LDER’nin ikinci bacağına 10k’lı k bir direnç bağlıyoruz ve bu direncin diğer ucunu da toprağa(GND) bağlıyoruz. Arduinonun analog pin 0 (A0)’dan LDR ile direncin bağlandığı yere jumper ile bağlantı yapıyoruz. Daha sonra arduinonun 13. pinine 330 Ohmluk bir direnç bağlıyoruz. Direncin diğer ucunu ledimizin + bacağını bağlıyoruz. Ledimizin – kutuplu olan bacağını da toprağa(GND) bağlıyoruz ve bağlantılarımız hazır.
Projemizin çalışma mantığı şu şekildedir: Ortamdaki ışık seviyesi bizim istediğimiz ışık seviyesinden az ise ledimizi yakacak ve istediğimizden fazla ise ledi söndürecek bir kod yazacağız.
int ldrPin = A0; //analog pinimizi tanımlıyoruz.
int ledPin = 13; //led pinimizi tanımlıyoruz.
int ldrValue =0; //ldr verimizi yani ışık seviyemizi tutacak olan değişkenimizi tanımlıyoruz.
void setup() {
pinMode(ledPin, OUTPUT); //led pinimizi çıkış yaptık
Serial.begin(9600); // Seri bağlantı hızınızı ayarladık
}
void loop() {
ldrValue = analogRead(ldrPin); // ışık seviyemizi ölçtük
Serial.println(ldrValue); // Seri monitöre ışık değerimizi yazdırdık
if(ldrValue>600) {
// Işık seviyesi 600 den büyükse ledi yak.
digitalWrite(ledPin,HIGH);
} else{
// Işık seviyesi 600 den büyükse değilse ledi söndür.
digitalWrite(ledPin,LOW);
}
}
Not: Işık seviyesinin LDR’nin göstereceği direnç ile ters orantılıdır. Yani ışık seviyesi azaldıkça LDR fazla bir direnç uygular. Işık seviyesi artar ise LDR düşük bir direnç gösterir.