Light Dependet Resistance (LDR) dilimizde Foto direnç olarak adlandırılan devre elemanı ile buzzer kontrolü yapacağız. Foto direnç (LDR) üzerine düşen ışığın şiddetine göre direnci değişen devre elemanıdır. LDR‘ye ışık gelmediği durumda direnci çok yüksek olur ve üzerinden akım geçmez.
Buzzer ise ses çıkaran devre elemanıdır.
Bu projemizde arduino kartımız ile LDR‘den gelen verileri okuyarak ve okuduğumuz verilere göre buzzer‘dan ses çıkaracağız. LDR‘den gelen veriler analog olacağı için arduino kartımızın üzerindeki analog bölümü kullanacağız. Arduino modellerinin çoğunda bulunmaktadır. Bu bölümdeki pinler A0,A1,A2,A3… diye devam etmektedir. Analog pinlerden okuduğumuz veriler 0-1023 aralığında değişken olmaktadır.
Devre elemanlarını direkt olarak arduino üzerine bağlamak yerine breadboard kullanacağız. Böylelikle daha rahat çalışma imkanı bulabilmekteyiz.
Gerekli elemanlar:
- 1 adet arduino devre kartı
- 1 adet breadboard
- 1 adet buzzer
- 1 adet Foto direnç LDR
- 1 adet 10 kiloohm direnç
- 1 adet 220 ohm direnç
İşlemler:
- Arduino üzerindeki pozitif 5 volt breadboard üzerindeki artıya (+) bağlanır.
- Arduino üzerindeki Gnd breadboard üzerindeki eksiye (-) bağlanır.
- A0 pininden 10 kiloohm’luk direncin bir ucuna bağlanır.
- Breadboard üzerindeki 10 kiloohm’luk direncin diğer ucu breadboard üzerindeki eksiye (-) bağlanır.
- LDR‘nin bir ucu arduino üzerindeki A0 pininden breadboard bağlanan noktaya bağlanır.
- LDR diğer ucu ise breadboard üzerindeki artıya (+) bağlanır.
- Arduino üzerindeki digital 8. pinden breadboard üzerindeki 220 ohm’luk direncin bir ucuna bağlanır.
- Buzzerin artı (+) ucu 220 ohm’luk direncin diğer ucuna bağlanır.
- Buzzerin eksi (-) ucu breadboard üzerindeki eksiye (-) bağlanır.
Böylelikle devremiz hazır hale gelir.
Şimdi geldi sıra kodlama kısmına. Arduino ide programını açıp yeni bir proje oluşturalım.
Oluşturduğumuz projeye aşağıdaki kodlarımızı ekleyelim.
const int buzzer=8;
//Buzzer‘ın bağlı olduğu pini temsil eder.
const int ldr=A0;
//Foto direnç LDR‘nin bağlı olduğu pini temsil eder.
void setup(){
pinMode(buzzer,OUTPUT);
//Buzzer pinimizi çıkış pini olarak ayarladık.
}
void loop(){
int deger=analogRead(ldr);
//LDR‘den gelen analog değeri okuyoruz.
if(deger<=250){ //Okuduğumuz değer 250 küçük veya eşitse bu şarta girer.
digitalWrite(buzzer,HIGH);
//Okunan değer 250 küçük veya eşit olduğu için buzzer pinine güç verilir. Buzzer ses çıkarır.
}else{
digitalWrite(buzzer,LOW);
//Okunan değer 250 büyük olduğu için buzzer pinine güç verilmez. Buzzer ses çıkarmaz.
}
}