Merhaba arkadaşlar, bu uygulamamızda buzzer kullanarak İstiklal Marşı uygulaması yapacağız.
Malzeme Listesi
- Arduino
- Breadboard
- 1 Adet Buzzer
- 1 Adet 10k Potansiyometre
- 1 Adet 10k Ohm Direnç ( Kahverengi-Kırmızı-Turuncu)
- 1 Adet Button
- 8 Adet Erkek Erkek Jumper Kablo
Devre Şeması
Malzeme listesindeki malzemeleri kullanarak devremizi aşağıdaki şemaya uygun olarak kuralım. Devremiz butona basınca çalışacağı için buton koyduk. Butonun bağlantıları aşağıdaki şemadaki gibidir. Bir ucuna +5V diğer ucuna ise 7 numaralı pin ve 10k direç ile gnd ye bağlıyoruz. 8 numaralı pinden aldığımız kablo ile potansiyometrenin orta ucuna bağlıyoruz. Sağ veya sol ucundan ise bir çıkış alıp buzzer’ın anot(+) ucuna bağlıyoruz. Buzzer’ın katot(-) ucunu da gnd ye bağlıyor. Potansiyometre sayesinde buzzer’ın ses düzeyini ayarlayacağız. Daha anlaşılır ve net bir ses olmasını sağlayacağız.
Arduino Kodları
İlk önce buton ve buzzer için değişken tanımlayıp ve bu değişkenlere pin numaralarını eşitiliyoruz. Daha sonra #define komutu ile sabit bir değişken, yani değeri değişmeyecek bir tanımlama yapıyoruz. Bu tanımlamalarda notanın kodu ve karşılık gerek frekans değerlerini yazıyoruz. Arduino programlama yaparken bu nota kodlarını ve değerlerini bilmenize gerek yok. Sadece bazı projelerde lazım olduğu zaman kaydettiğiniz yerden alarak kullanabilirsiniz.
Setup fonksiyonunda butonumuzu INPUT(giriş), buzzerı ise OUTPUT(çıkış) olarak tanımlamamız gerekiyor.
Loop fonksiyonunda ilk butondan okuduğumuz değer HIGH mı diye kontrol ediyoruz. Yani butona basıldı mı olarak yorumlanabilir. Eğer okuduğumuz değer HIGH ise Oynat() isimli fonksiyonumuz çalışmaya başlıyor. Oynat isimli fonksiyonu direk if bloğunun içine de yazabilirdim ama daha anlaşılır olması için yeni bir fonksiyon tanımladım.
Oynat fonksiyonunda en başta tanımladığımız nota kodları ve frekanslarını kullanarak istiklal marşının notalarına karşılık gelen kodlar yazılmıştır. Tone fonksiyonu ile belirlediğimiz frekansı buzzera iletiyoruz ve bir süre bekleyip diğer frekansı buzzera iletiyoruz. Bu sayede İstiklal Marşımızın melodisi çalmaya başlıyor. Melodi bitince tekrar açmak istersek, tekrar butona basabiliriz.
Ufak bir bilgiden de bahsetmek istersem arduinoda kod yazarken // işareti yaparak, bu işaretten sonraki yazılar açıklama satırı olcaktır ve kodumuzun hata vermesini engelleyecektir. // bu işaretten sonra sadece o satır açıklama satırı olacaktır. Örnek olarak oynat fonksiyonunda görebilirsiniz.
int butonPin=7;
int buzzerPin = 8;
#define a 440
#define ad 466
#define b 494
#define c 523
#define cd 554
#define d 587
#define dd 622
#define e 659
#define f 698
#define fd 740
#define g 784
#define gd 830
#define a2 880
#define ad2 932
#define b2 988
#define c2 1046
#define cd2 1108
#define d2 1174
#define dd2 1244
#define e2 1318
#define f2 1396
#define fd2 1480
#define g2 1568
#define gd2 1660
#define a3 1760
void setup(){
pinMode(butonPin,INPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop(){
if(digitalRead(butonPin)==HIGH)
Oynat();
}
void Oynat(){
//Korkma Sönmez Bu Şafak
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, f);
delay(800);
tone( buzzerPin, g);
delay(800);
tone( buzzerPin, gd);
delay(800);
tone( buzzerPin, e);
delay(400);
tone( buzzerPin, g);
delay(200);
tone( buzzerPin, f);
delay(1600);
noTone( buzzerPin);
delay(300);
//Larda Yüzden Al Sancak
tone( buzzerPin, f);
delay(800);
tone( buzzerPin, ad2);
delay(800);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, cd2);
delay(800);
tone( buzzerPin, a2);
delay(400);
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, ad2);
delay(1600);
//Sönmeden Yurdumun Üstünde Tüten En Son Ocak O Be
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, ad2);
delay(200);
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, g);
delay(400);
noTone( buzzerPin);
delay(100);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, gd);
delay(400);
tone( buzzerPin, e);
delay(200);
tone( buzzerPin, f);
delay(400);
tone( buzzerPin, g);
delay(200);
tone( buzzerPin, gd);
delay(400);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, c2);
delay(400);
tone( buzzerPin, cd2);
delay(200);
tone( buzzerPin, dd2);
delay(400);
tone( buzzerPin, f2);
delay(200);
tone( buzzerPin, dd2);
delay(400);
//Nim Milletimin
tone( buzzerPin, dd);
delay(200);
tone( buzzerPin, d);
delay(200);
tone( buzzerPin, dd);
delay(200);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, ad);
delay(800);
tone( buzzerPin, gd);
delay(1600);
// Yıldızıdır Parlayacak O benim
tone( buzzerPin, c);
delay(200);
tone( buzzerPin, b);
delay(200);
tone( buzzerPin, c);
delay(200);
tone( buzzerPin, g);
delay(800);
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, f);
delay(800);
//Dir O Benim Milletimindir Ancak
tone( buzzerPin, f2);
delay(800);
tone( buzzerPin, dd2);
delay(200);
tone( buzzerPin, cd2);
delay(400);
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, ad);
delay(400);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, f);
delay(200);
tone( buzzerPin, c2);
delay(400);
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, f);
delay(1600);
//İKİNCİ KITA
//Çatma Kurban Olayım
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, f);
delay(800);
tone( buzzerPin, g);
delay(800);
tone( buzzerPin, gd);
delay(800);
tone( buzzerPin, e);
delay(400);
tone( buzzerPin, g);
delay(200);
tone( buzzerPin, f);
delay(1600);
noTone( buzzerPin);
delay(300);
//Çehreni Ey Nazlı Hilal
tone( buzzerPin, f);
delay(800);
tone( buzzerPin, ad2);
delay(800);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, cd2);
delay(400);
tone( buzzerPin, ad2);
delay(400);
tone( buzzerPin, a2);
delay(400);
tone( buzzerPin, c2);
delay(400);
tone( buzzerPin, ad2);
delay(800);
//Kahraman Irkıma Bir Gül Ne Bu Şiddet Bu Celal Sana
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, ad2);
delay(200);
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, g);
delay(400);
noTone( buzzerPin);
delay(100);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, gd);
delay(400);
tone( buzzerPin, e);
delay(200);
tone( buzzerPin, f);
delay(400);
tone( buzzerPin, g);
delay(200);
tone( buzzerPin, gd);
delay(400);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, c2);
delay(400);
tone( buzzerPin, cd2);
delay(200);
tone( buzzerPin, dd2);
delay(400);
tone( buzzerPin, f2);
delay(200);
tone( buzzerPin, dd2);
delay(400);
//Olmaz Dökülen
tone( buzzerPin, dd);
delay(200);
tone( buzzerPin, d);
delay(200);
tone( buzzerPin, dd);
delay(200);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, ad);
delay(800);
tone( buzzerPin, gd);
delay(1600);
//Kanlarımız Sonra Helal Hakkıdır
tone( buzzerPin, c);
delay(200);
tone( buzzerPin, b);
delay(200);
tone( buzzerPin, c);
delay(200);
tone( buzzerPin, g);
delay(800);
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, c2);
delay(800);
tone( buzzerPin, ad);
delay(200);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, f);
delay(800);
//Hakk'a Tapan Milletimin İstiklal
tone( buzzerPin, f2);
delay(800);
tone( buzzerPin, dd2);
delay(200);
tone( buzzerPin, cd2);
delay(400);
tone( buzzerPin, c2);
delay(200);
tone( buzzerPin, ad);
delay(400);
tone( buzzerPin, gd);
delay(200);
tone( buzzerPin, g);
delay(400);
tone( buzzerPin, f);
delay(200);
tone( buzzerPin, c2);
delay(400);
tone( buzzerPin, c);
delay(800);
tone( buzzerPin, f);
delay(1600);
noTone( buzzerPin);
}
Kodları yazdıktan sonra arduinomuzu bilgisayara bağlayıp yükleme işlemini yapabiliriz. Bu sayede İstiklal Marşı uygulamamız gerçekleşmiş olacak.
Merhaba, emeğiniz için teşekkürler yalnız kodlar şöyle hata veriyor:
Compiling sketch…
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino:2:1: error: expected ‘,’ or ‘;’ before ‘int’
int buzzerPin = 8;
^~~
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino: In function ‘void setup()’:
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino:30:11: error: ‘buzzerPin’ was not declared in this scope
pinMode(buzzerPin, OUTPUT);
^~~~~~~~~
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino:30:11: note: suggested alternative: ‘butonPin’
pinMode(buzzerPin, OUTPUT);
^~~~~~~~~
butonPin
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino: In function ‘void Oynat()’:
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino:38:11: error: ‘buzzerPin’ was not declared in this scope
tone( buzzerPin, c);
^~~~~~~~~
/tmp/639398897/sketch_jan28a/sketch_jan28a.ino:38:11: note: suggested alternative: ‘butonPin’
tone( buzzerPin, c);
^~~~~~~~~
butonPin
exit status 1
Kod kısmında ilk satırın sonunda ; olması gerekiyordu. Gerekli düzenlemeyi yaptım. Tekrar deneyebilirsiniz 🙂
merhaba ben kodu attım ama çalışmadı ses çıkmıyor neden
merhaba ben kodu attım ama çalışmadı ses çıkmıyor