Ders-3: Arduino Foto Direnç (LDR) Kullanımı
Arduino Foto Direnç (LDR) Kullanımı
Arduino Foto Direnç (LDR) Kullanımı: Direnç değeri aydınlıkta azalan, karanlıkta ise artan elemana foto direnç (LDR) denir.Tam karanlık bir ortamda yani üzerine az yada hiç ışık düşmezken direnç değeri 200 MΩ gibi oldukça yüksek direnç değerleri gösterir. Yani foto direnç, üzerine düşen ışık arttıkça direnç değeri lineer olmayan bir şekilde azalır. Bu yüzden ışık şiddetinin artması direnç değerinin düşmesine, ışık şiddetinin azalması ise direnç değerinin artmasına sebep olur.
Işık şiddeti farkının kontrol edilmesi gereken tüm elektronik devrelerde kullanılabilir. LDR ışık ile ters orantılı olarak direnç değeri değişen devre elemanıdır.Işık şiddeti arttıkça direnç değeri azalan ışık şiddeti azaldıkça direnç değeri azalan bir elemandır.
LDR Foto Direncin bir bacağı +5 V bağlanır. Diğer bacak ise Arduino Uno cartın A0 girişine bağlanır. Ayrıca 10 K ohm direnç ile GND pinine bağlanır.
Ledler anot uçları ise sırası ile Arduino Cartın 4,5,6,7 pinlerine takılır. Ledlerin katot uçları ise 330 ohm luk dirençler ile GND pinine bağlanır.
Aşağıda Arduino devresinin kodları yer almaktadır:
int spin=0;
int lpin1=7;
int lpin2=6;
int lpin3=5;
int lpin4=4;
void setup() {
Serial.begin(9600);
pinMode(lpin1,OUTPUT);
pinMode(lpin2,OUTPUT);
pinMode(lpin3,OUTPUT);
pinMode(lpin4,OUTPUT);
}
void loop() {
int sensorValue=analogRead(spin);
Serial.println(sensorValue);
if (sensorValue>0 && sensorValue<=15){
digitalWrite(lpin1,LOW);
digitalWrite(lpin2,LOW);
digitalWrite(lpin3,LOW);
digitalWrite(lpin4,LOW);
}
if (sensorValue>15 && sensorValue<=30){
digitalWrite(lpin1,HIGH);
digitalWrite(lpin2,LOW);
digitalWrite(lpin3,LOW);
digitalWrite(lpin4,LOW);
}
if (sensorValue>31 && sensorValue<=45){
digitalWrite(lpin1,HIGH);
digitalWrite(lpin2,HIGH);
digitalWrite(lpin3,LOW);
digitalWrite(lpin4,LOW);
}
if (sensorValue>46 && sensorValue<60){
digitalWrite(lpin1,HIGH);
digitalWrite(lpin2,HIGH);
digitalWrite(lpin3,HIGH);
digitalWrite(lpin4,LOW);
}
if (sensorValue>61 && sensorValue<80){
digitalWrite(lpin1,HIGH);
digitalWrite(lpin2,HIGH);
digitalWrite(lpin3,HIGH);
digitalWrite(lpin4,HIGH);
}
delay (100);
}
Öncelikler spin, lpin1,lpin2ilpin3 ve lpin4 değişkenleri oluşturulmaktadır. spin değişkeni LDR girişi, diğerleri ise LED lerin girişleridir. Void setup içerisine LED lerin çıkışları belirtilmelidir.
int sensorValue=analogRead(spin);
komutu ile spin bacağındaki Analog okuması gerçekleştirilir ve sensorValue değişkenine 0-255 arası değer aktarılır. Burası programın döngü kısmı olduğu için bu değer ışık şiddetine göre devamlı değişebilmektedir. Daha sonra if yapıları içerisinde sensorValue değişkeninin alacağı değerlere göre LED lerin bacaklarına +5V gönderilmektedir.