Arduino Buzzer Kullanımı

Arduino Buzzer Kullanımı | Ders 7: Arduino Buzzer Müzik

Arduino Buzzer kullanımı uygulamamızda sizlerle notaları kod satırlarında kullanacak ve bu notaların tınılarını arduino uno kartımıza bağladığımız buzzer ile duyacağız. Hazırsanız başlıyoruz. Öncelikle buzzer nedir, ne işe yarar? gibi sorulara cevap arayalım.

Arduino Buzzer Kullanımı | Buzzer Nedir? Ne işe Yarar?

Buzzer voltaja göre farklı tınılarda ses sinyalleri üreten elektronik bileşenidir. Maliyetleri bir hayli ucuz, üretimi de haliyle basit, küçük yapıda bir hoparlör gibi düşünebilirsiniz. Ancak çok basit sesler üretir. Çok eski oyunlardaki midi şeklindeki müzikleri hatırlarsınız. İşte o müziklerin ortaya çıkışları bu zamana denk gelir. Ya da herkes bilgisayarlarını açarken duydukları “dit” sesini bilir. İşte o da bir midi sestir ve çoğunlukla anakart üzerinde bulunan buzzerlarla kullanıcılara iletilir.

Kullanım alanları çok geniş olmakla birlikte, alarmlarda, uyarı sistemlerinde, zil seslerinde yani kısacası uyarı vermek istediğimiz her devrede kullanılabilirler. Şahsen ben bir çok arduino projesinde buzzer kullanıyorum. Ancak bu uygulamada buzzer ‘ı biraz amacının dışında kullanacağız. Yani müzik vb. gibi.

Arduino Buzzer Kullanımı
Resim 1 – Örnek Buzzer

Arduino Buzzer Kullanımı ve Buzzer ‘ın Test Edilmesi

Öncelikle ilk uygulamamızı yapalım. Test etmek için aşağıdaki devreyi kuralım. Devre çok basit. Devrede kullanılacak elemanlar aşağıdadır. Ben 8 numaralı pine Buzzer ‘ın (+) kutbunu bağladım. Sizlerde isterseniz herhangi bir dijital pine de bağlayabilirsiniz. Diğer ucumuz da zaten GND pinlerinden herhangi birisine takılması yeterlidir.

 

Arduino Buzzer Kullanımı Devre Şeması
Resim 2 – Arduino Buzzer Kullanımı Devre Şeması

Arduino Uno kartımıza aşağıdaki kod satırlarını yükleyelim. Kodları inceleyecek olursak öncelikle bir tamsayı sabit ile 8 numaralı pin i kullanacağımızı belirtiyoruz. Sonrasında pinMode fonksiyonu ile buzzer pin in çıkış olarak kullanılacağını programa söylüyoruz. Sonrasında ise loop içerisinde 1 er saniyelik aralıklarla buzzer varsayılan ses tonunda sinyal vermesini sağlıyoruz.

const int buzzer = 8; // buzzer taktığımız pin

void setup(){ 
  pinMode(buzzer, OUTPUT); // buzzer pini dijital çıkış olarak tanımlıyoruz.
}

void loop(){ 
  tone(buzzer, 1000); // 1 khz'lik ses üretip, çalıyor.
  delay(1000);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(1000);        // 1 sn. bekliyor.  
}

Arduino Buzzer ile Notaları Oluşturma

Şimdi bir önceki örnekten biraz daha gelişmiş bir uygulamayı kodlayalım. Devre şeması yukarıdaki ile tamamen aynı olacak. Hatta kodlarda da bir kaç fark bulunmaktadır. Aşağıda Do-Re-Mi……Do şeklinde notaları üreten kodumuz aşağıdadır. Aslına bakacak olursanız aşağıdaki kodlar bazıları için biraz ilkel olabilir. Çünkü döngü kullanmak yerine elle notaları yazdık. Ancak bunu daha iyi anlatabilmek için yaptık. Öncelikle belirtelim ki buzzer’ lar belli frekanslarda ses sinyali üretirler. Örneğin ilk uygulamamızda 1 kHZ’ lik kalın ve çızırtılı bir ses ürettik. Şimdi ise müzik notalarını üretmek istiyoruz. Buzzer’ da yapılan testlere göre DO – RE – Mİ – FA – SOL – LA -Sİ – DO notaları sırasıyla 264, 297, 330, 352, 396, 440, 495, 528 Hertz sinyal değerine sahiptirler. Yani bizler tone(buzzer, 264) yaparak aslında “do” notasını üretmiş oluruz. Bu mantıkla diğer kod satırlarını da eklemeye çalıştım.

const int buzzer = 8; // buzzer taktığımız pin
 
void setup(){ 
  pinMode(buzzer, OUTPUT); // buzzer pini dijital çıkış olarak tanımlıyoruz.
}
 
void loop(){ 
  tone(buzzer, 264); // Do
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
  tone(buzzer, 297); // Re
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
  tone(buzzer, 330); // Mi
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
  tone(buzzer, 352); // Fa
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
  tone(buzzer, 396); // Sol
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor. 
  tone(buzzer, 440); // La
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
  tone(buzzer, 495); // Si
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.   
  tone(buzzer, 528); // Do
  delay(500);        // 1 sn. bekliyor.
  noTone(buzzer);     // Ses susuyor.
  delay(500);        // 1 sn. bekliyor.  
}

İstenirse bu kodlar bu kadar satırlara sahip olmayabilir. Bu kod satırlarını döngü ile aşağıdaki gibi düzenleyebilirsiniz.

int buzzer =8;
int nota = 8;
int C = 264;
int D = 297;
int E = 330;
int F = 352;
int G = 396;
int A = 440;
int B = 495;
int C_ = 528;
int notalar[] = {C, D, E, F, G, A, B, C_};
void setup()
{
  for (int i = 0; i < nota; i++)
  {
    tone(buzzer, notalar[i]);
    delay(500);
    noTone(buzzer);
    delay(500);
  }
  noTone(buzzer);
}
void loop()
{
}

Arduino Buzzer ile İstiklal Marşı

Son olarak github’ da bir Türk tarafından paylaşılan Milli Marşımız İstiklal Marşını buzzer kullanarak çalmaya geldi sıra. Bu da aslında yukarıdaki örnekten pek de farklı değil. Sadece ekstra ara notalar da bu kodlar içerisinde kullanılıyor o kadar. Örn: do diyez…(Müzikten pek anlayan biri olmadığım için teknik olarak ne ifade ediyor bilemiyorum.)

Mehmet Akif Ersoy’ un bu ülkeye emanet ettiği tek gerçek değerli hediyemiz İstiklal Marşının arduino kodu aşağıdadır.

/////////////////////////////////////////
//Programmer: Coşkun Kozakbaş          //
/////////////////////////////////////////
const int buzzer = 8; // buzzer pin 8 ve GND'ye bağlı

//kullanılacak notalar
int a, ad, b, c, cd, d, dd, e, f, fd, g, gd, a2, ad2, b2, c2, cd2, d2, dd2, e2, f2, fd2, g2, gd2, a3;

void setup()   
{  
  Serial.begin(9600); 
  pinMode(buzzer, OUTPUT);
  
//////////////////////  
// c  = do
// cd = do diyez
// d  = re
// dd = re diyez
// e  = mi
// f  = fa
// fd = fa diyez
// g  = sol
// gd = sol diyez
// a  = la
// ad = la diyez
// b  = si
///////////////////////

//notalara karşılık gelen frekans değerleri
a=440;
ad=466;
b=494;

c=523;
cd=554;
d=587;
dd=622;
e=659;
f = 698;
fd = 740;
g = 784;
gd = 830;

a2 = 880;
ad2 = 932;
b2 = 988;
c2 = 1046;
cd2 = 1108;
d2 = 1174;
dd2 = 1244;
e2 = 1318;
f2 = 1396;
fd2 = 1480;
g2 = 1568;
gd2 = 1660;
a3 = 1760;


}  

void loop() 
{  
//Korkma Sönmez Bu Şafak  
    tone(buzzer, c);
    delay(800);
    tone(buzzer, f);
    delay(800);
    tone(buzzer, g);
    delay(800);
    tone(buzzer, gd);
    delay(800);
    tone(buzzer, e);
    delay(400);
    tone(buzzer, g);
    delay(200);        
    tone(buzzer, f);
    delay(1600);        
    noTone(buzzer);
    delay(300);
//Larda Yüzden Al Sancak
    tone(buzzer, f);
    delay(800);        
    tone(buzzer, ad2);
    delay(800);        
    tone(buzzer, c2);
    delay(800);        
    tone(buzzer, cd2);
    delay(800);
    tone(buzzer, a2);
    delay(400);
    tone(buzzer, c2);
    delay(200);
    tone(buzzer, ad2);
    delay(1600);        
//Sönmeden Yurdumun Üstünde Tüten En Son Ocak O Be
    tone(buzzer, c2);
    delay(200);        
    tone(buzzer, ad2);
    delay(200);        
    tone(buzzer, c2);
    delay(200);        
    tone(buzzer, g);
    delay(400);        
    noTone(buzzer);
    delay(100);  
    tone(buzzer, g);
    delay(400);        
    tone(buzzer, ad);
    delay(200);
    tone(buzzer, gd);
    delay(400);   
    tone(buzzer, e);
    delay(200);
    tone(buzzer, f);
    delay(400);   
    tone(buzzer, g);
    delay(200);
    tone(buzzer, gd);
    delay(400);        
    tone(buzzer, ad);
    delay(200);        
    tone(buzzer, c2);
    delay(400);        
    tone(buzzer, cd2);
    delay(200);        
    tone(buzzer, dd2);
    delay(400);        
    tone(buzzer, f2);
    delay(200);        
    tone(buzzer, dd2);
    delay(400);     
//Nim Milletimin
    tone(buzzer, dd);
    delay(200);
    tone(buzzer, d);
    delay(200);
    tone(buzzer, dd);
    delay(200);
    tone(buzzer, c2);
    delay(800);
    tone(buzzer, ad);
    delay(800);
    tone(buzzer, gd);
    delay(1600);
// Yıldızıdır Parlayacak O benim
    tone(buzzer, c);
    delay(200);
    tone(buzzer, b);
    delay(200);
    tone(buzzer, c);
    delay(200);
    tone(buzzer, g);
    delay(800);
    tone(buzzer, c);
    delay(800);
    tone(buzzer, c2);
    delay(800);
    tone(buzzer, ad);
    delay(200);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, g);
    delay(400);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, f);
    delay(800);
//Dir O Benim Milletimindir Ancak
    tone(buzzer, f2);
    delay(800);
    tone(buzzer, dd2);
    delay(200);
    tone(buzzer, cd2);
    delay(400);
    tone(buzzer, c2);
    delay(200);
    tone(buzzer, ad);
    delay(400);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, g);
    delay(400);
    tone(buzzer, f);
    delay(200);
    tone(buzzer, c2);
    delay(400);
    tone(buzzer, c);
    delay(800);
    tone(buzzer, f);
    delay(1600);

/////////////ikinci kıt'a

//Çatma Kurban Olayım
    tone(buzzer, c);
    delay(800);
    tone(buzzer, f);
    delay(800);
    tone(buzzer, g);
    delay(800);
    tone(buzzer, gd);
    delay(800);
    tone(buzzer, e);
    delay(400);
    tone(buzzer, g);
    delay(200);        
    tone(buzzer, f);
    delay(1600);        
    noTone(buzzer);
    delay(300);
//Çehreni Ey Nazlı Hilal
    tone(buzzer, f);
    delay(800);        
    tone(buzzer, ad2);
    delay(800);        
    tone(buzzer, c2);
    delay(800);        
    tone(buzzer, cd2);
    delay(400);
    tone(buzzer, ad2);
    delay(400);
    tone(buzzer, a2);
    delay(400);
    tone(buzzer, c2);
    delay(400);
    tone(buzzer, ad2);
    delay(800);        
//Kahraman Irkıma Bir Gül Ne Bu Şiddet Bu Celal Sana
    tone(buzzer, c2);
    delay(200);        
    tone(buzzer, ad2);
    delay(200);        
    tone(buzzer, c2);
    delay(200);        
    tone(buzzer, g);
    delay(400);        
    noTone(buzzer);
    delay(100);  
    tone(buzzer, g);
    delay(400);        
    tone(buzzer, ad);
    delay(200);
    tone(buzzer, gd);
    delay(400);   
    tone(buzzer, e);
    delay(200);
    tone(buzzer, f);
    delay(400);   
    tone(buzzer, g);
    delay(200);
    tone(buzzer, gd);
    delay(400);        
    tone(buzzer, ad);
    delay(200);        
    tone(buzzer, c2);
    delay(400);        
    tone(buzzer, cd2);
    delay(200);        
    tone(buzzer, dd2);
    delay(400);        
    tone(buzzer, f2);
    delay(200);        
    tone(buzzer, dd2);
    delay(400);     
//Olmaz Dökülen
    tone(buzzer, dd);
    delay(200);
    tone(buzzer, d);
    delay(200);
    tone(buzzer, dd);
    delay(200);
    tone(buzzer, c2);
    delay(800);
    tone(buzzer, ad);
    delay(800);
    tone(buzzer, gd);
    delay(1600);
//Kanlarımız Sonra Helal Hakkıdır
    tone(buzzer, c);
    delay(200);
    tone(buzzer, b);
    delay(200);
    tone(buzzer, c);
    delay(200);
    tone(buzzer, g);
    delay(800);
    tone(buzzer, c);
    delay(800);
    tone(buzzer, c2);
    delay(800);
    tone(buzzer, ad);
    delay(200);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, g);
    delay(400);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, f);
    delay(800);
//Hakk'a Tapan Milletimin İstiklal
    tone(buzzer, f2);
    delay(800);
    tone(buzzer, dd2);
    delay(200);
    tone(buzzer, cd2);
    delay(400);
    tone(buzzer, c2);
    delay(200);
    tone(buzzer, ad);
    delay(400);
    tone(buzzer, gd);
    delay(200);
    tone(buzzer, g);
    delay(400);
    tone(buzzer, f);
    delay(200);
    tone(buzzer, c2);
    delay(400);
    tone(buzzer, c);
    delay(800);
    tone(buzzer, f);
    delay(1600);
    
//Söz    : Mehmet Akif Ersoy
//Beste  : Osman Zeki Üngör


    noTone(buzzer);
    delay(300);
    
    for(;;){} //tekrar yok
}

Sonraki uygulamalarımızda arduino uno ile daha farklı uygulamalarla Arduino Derslerimize devam edeceğiz. Şimdilik bizden bu kadar, tekrar görüşmek dileğiyle. Hoş çakalın.

Not: Arduino Buzzer Kullanımı | Ders 7: Arduino Buzzer Müzik isimli makale içerisindeki anlatımlar özgün içeriktir. Alıntı yapmadan kullanılamaz.@kodlamaegitimi.org

 

No comments yet! You be the first to comment.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yazılarımızı Takip Etmek için
Facebook Sayfamızı Beğenin
Bizlere destek olun