
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ı 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 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