Arduino LDR İle Buzzer Kontrolü
Bir önceki projemizde ldr’nin ne olduğunu öğrenmiştik. Şimdi de buzzer kavramına bakalım. Elektronik cihazlarda, üzerine gelen voltajın büyüklüğü ile orantılı “bip” sesi çıkaran minik hoparlörlere buzzer denir. Genellikle projelerde bir etkiye ses ile tepki verebilmek için kullanılır.
Biz bu projemizde ldr ile buzzer kontrolü sağlayacağız. Ldr üzerine düşen belli yoğunluktaki ışık miktarından sonra buzzer’dan ses almayı deneyeceğiz.
Kullanılan Malzemeler
- Arduino Uno kartı,
- Ldr,
- 10 kiloohm direnç,
- Buzzer,
- Çeşitli kablolar ve devre elemanları.
Tasarım
Buzzer ile Arduino Uno kartını kesinlikle doğrudan bağlamayın. Bu yanlış bir bağlantı şekli olacaktır. Doğrusu, arada bir breadboard kullanmaktır. Buzzer’larda iki adet kablo girişi bulunmaktadır. Biri pozitif diğeri negatif. Projemizdeki buzzer pozitif değerini Uno kartındaki Dijital-12 çıkışından almaktadır. Siz isterseniz başka bir dijital çıkış pinine de bağlayabilirsiniz. Negatif bağlantı kartın üzerindeki GND çıkışı ile sağlanacaktır.
Şimdi sıra geldi ldr’nin devreye bağlanışına. Ldr de 10 kiloohm değerindeki direnç ile birlikte breadboard üzerine yerleştirilir. Ldr’nin bir ucu Uno kartından gelen pozitif 5 volt ile desteklenir. Diğer ucu Anolog-1 girişine verilir ki kart ldr’den gelen analog ışık verisini değerlendirsin. Direncin bir ucu da yine aynı Analog-1 girişindedir. Diğer ucu toprağa, Gnd girişine bağlanmıştır. Bu şekilde devremiz tamamlanmış olmaktadır. İş artık kod kısmına kalmıştır.
Kodlar
Ldr ile buzzer kontrolü devresinde kod mantığımız şu şekilde olacaktır: Öncelikle Uno kartında kullandığımız pin’leri tanımlayacağız. Buzzer için Dijital-12, Ldr için ise Analog-0 girişlerini kullandık. Daha sonra tanımlanan değerlerden buzzer’ın çıkış, ldr’nin giriş birimi olduğunu belirttik. loop() döngüsünde ise ldr’den gelen ışık yoğunluğu miktarını bir değişkene aktardık. Okuduğumuz değer kendi belirlediğimiz bir eşik miktarından fazla ise, tone() fonksiyonu ile buzzer’ın ses çıkarmasını sağladık. Eğer değer bizim istediğimiz! eşikten küçükse, noTone() fonksiyonu ile buzzer’ın sessiz kalması gerektiğini belirttik.
int buzzerPin = 12; int ldr_pin=A0; void setup() { pinMode(ldr_pin,INPUT); pinMode(buzzerPin,OUTPUT); } void loop() { int ldr_degeri=analogRead(ldr_pin); if(ldr_degeri>=250) { tone(buzzerPin,10); } else { noTone(buzzerPin); } }