28 Mart 2024 Perşembe

Arduino ile buzzer kullanımı ve değişken ses çıkarma

 Frekans ile ses çıkaran bir elektronik bileşen olan buzzer sadece notasal sesler çıkarır. Genellikle uyarı sistemlerinde kullanılan buzzer'dan normal bir hoparlör gibi performans beklenemez. Bu örnekte arduino'da buzzer kullanımını işleyeceğiz.



Bir nohut tanesinden biraz daha büyük olan buzzer üzerine gelen elektrik sinyalini titreşime dönüştürerek ses çıkarır. Genelde basit seslerin çıkarıldığı sistemlerde uyarı ve bilgilendirme amacı ile kullanılır. Buzzer'ın çalışması için aşağıdaki şekilde görüldüğü gibi GND yazan ucu küçük değerli bir direnç ile devrenin GND hattına bağlamak + olan ucu da Arduino'dan gelecek sinyal pinine bağlamak gerekir.

Buzzerdan ses çıkması için tone komutu kullanılır. Ses çıkarmamak için de noTone komutu kullanılır.

tone(pin numarası,gönderilecek sinyal değeri, bekleme milisaniye süresi);
tone(2,261,200);
Yukarıdaki örnekte 2 numaralı pine 261 değeri 200 milisaniye süresince gönderiliyor. Biz bekleme sürelerini delay komutu ile de aşağıdaki gibi yapabiliriz.
tone(2,261);
delay(200);


Yukarıdaki videoda görüldüğü ve duyulduğu üzere buzzerdan sabit bir ses yerine değişken bir ses çıkmaktadır. Bunun nedeni ayarlı direnç diye bildiğimiz potansiyometreden aldığımız değerleri buzzera anlık göndererek sesin değişken bir şekilde çıkmasını sağlıyor.

tone komutunda buzzerdan ses çıkması için bir frekans değeri giriyorduk. Bu frekans değerini bu sefer ayarlı dirençten okuduğumuz değer olarak yansıtıyoruz. Değer okumak için hatırlarsınız analogRead komutu kullanılıyordu. Örneğin tone(2,261) değeri ile tek bir ses çıkartılırken 261 yerine analogRead ile okutulan değer verilirse ve kısa bir bekletme yapılırsa değişken bir ses ortaya çıkar.

void setup() {
pinMode(8,OUTPUT); //buzzer'ın bağlı olduğu pin
pinMode(A0,INPUT); //potansiyometrenin girişi A0 pinine
}

void loop() {
  int oku=analogRead(A0); //potansiyometreden değer okumak
  tone(8,oku);
  delay(50);
  noTone(8);
delay(10);
}

Yukarıdaki kodlarda görüldüğü üzere potansiyometreden okunan 0-1023 arası değerler oku değişkenine atanıyor ve bu değer tone komutu içinde 8 numaralı pine bağlanan buzzera gönderiliyor. 50 milisaniye ve 10 milisaniyelik çok kısa bekleme süreleri ile neredeyse anlık değişimler buzzer üzerindeki ses ile hissediliyor. Bu devrenin şeması da aşağıdaki şekildedir.


Potansiyometrenin çalışması için 3 ucundan dış uçlarından birine +5v diğerine GND bağlamak gerekir. Ortadaki uç ise potansiyometre üzerindeki değeri verir.



Hiç yorum yok:

Yorum Gönder