TinkerCAD ile Buzzer Uygulaması
Bu uygulamada buzzer ile bir şarkı çalacağız. Buzzer'ın müzik notalarını çalabilmesi için belirli bir frekans aralığında çalışması gerekmektedir.
/*BlogKod.com - TinkerCAD ile Buzzer Uygulaması*/
/*
Bu uygulamada buzzer ile bir şarkı çalacağız.
Buzzer'ın müzik notalarını çalabilmesi için belirli
bir frekans aralığında çalışması gerekmektedir.
Müzik notalarının harf ve frekans karşılığı tablosu şöyledir.
Nota Çalışma Frekansı
c (DO) 262 Hz
d (RE) 294 Hz
e (Mİ) 330 Hz
f (FA) 349 Hz
g (SOL) 392 Hz
a (LA) 440 Hz
b (Sİ) 494 Hz
C (İNCE DO) 523 Hz
Çalacağımız şarkının notaları şöyle:
“Daha Dün Annemizin Kollarında Yaşarken” Çocuk Şarkısı Notaları:
Da-ha-dün-an-ne-mi-zin
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Kol-la-rın-da-ya-şar-ken
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
Çi-çek-li-bah-çe-mi-zin
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Yol-la-rın-da-ko-şar-ken
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
Şim-di-o-kul-lu-ol-duk
Sol-sol-fa-fa-mi-mi-re
g-g-f-f-e-e-d
Sı-nıf-la-rı-dol-dur-duk
Sol-sol-fa-fa-mi-mi-re
g-g-f-f-e-e-d
Se-vinç-li-yiz-he-pi-miz
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Ya-şa-sın-o-ku-lu-muz
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
*/
// Buzzer dijital 9 numaralı pine bağlı
const int buzzerPini = 9;
//Şarkımızın es'lerle birlikte nota sayısı 64'tür.
const int sarkiUzunlugu = 64;
//Şarkımıza ait notaları es'lerle(boşluklar) diziye atıyoruz.
char sarkinotalari[] = "ccggaag ffeeddc ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc ";
//Boşluklar bir es'i ifade eder
//Şarkımıza ait her nota 2 vuruş çalsın.
int vurusSayisi = 2;
//Notalar arası beklemeyi belirlemek için tempo isimli bir değişken tanımladık.
int tempo = 300;
void setup()
{
//Buzzer pini çıkış olarak ayarlandı
pinMode(buzzerPini, OUTPUT);
}
void loop()
{
int i, durak;
for (i = 0; i < sarkiUzunlugu; i++) // Şarkımıza notaları atamak için döngüyü çalıştırıyoruz.
{
durak = vurusSayisi * tempo; // Nota ya da es'lerin uzunluğunu durak olarak belirliyoruz.
if (sarkinotalari[i] == ' ') // Notalar arasında es mi var? Boşluk yani...
{
delay(durak); // durak değişkeni kadar bekle
}
else // es yoksa notaları çal...
{
tone(buzzerPini, frekans(sarkinotalari[i]), durak);
delay(durak); // durak kadar bekleme yap
}
delay(tempo / 10); // Notalar arası 30 ms bekle...
}
while (1); // Şarkıyı 1 kez çalmak için burada döngüyü durdurduk.
//Sürekli çalsın istiyorsanız bu döngüyü kaldırabilirsiniz.
}
int frekans(char nota)
{
// Bu frekans fonksiyonu notaları harflendirir ve
// tone() fonksiyonu için nota karşılığı olan frekansı
// hz (hertz) cinsinden döndürür
int i;
const int notaSayisi = 8; // DO'dan İNCE DO'ya 8 notamız var...
char notaHarfleri[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int notaFrekanslari[] = {262, 294, 330, 349, 392, 440, 494, 523};
//Bu döngüde harflere frekans karşılığını atamış olacağız.
//Böylece frekans değeri yerine belirlediğimiz harfleri ya da sembolleri kullanabiliriz.
for (i = 0; i < notaSayisi; i++) // Step through the notes
{
if (notaHarfleri[i] == nota) //Nota var mı?
{
return (notaFrekanslari[i]); // Varsa frekans karşılığını döndür...
}
}
//Hiçbir nota yoksa bile null değer döndürmemiz gerekiyor.
// Çünkü frekans fonksiyonumuz değer döndürmesi gereken bir fonksiyon...
return (0);
}
/*
Bu uygulamada buzzer ile bir şarkı çalacağız.
Buzzer'ın müzik notalarını çalabilmesi için belirli
bir frekans aralığında çalışması gerekmektedir.
Müzik notalarının harf ve frekans karşılığı tablosu şöyledir.
Nota Çalışma Frekansı
c (DO) 262 Hz
d (RE) 294 Hz
e (Mİ) 330 Hz
f (FA) 349 Hz
g (SOL) 392 Hz
a (LA) 440 Hz
b (Sİ) 494 Hz
C (İNCE DO) 523 Hz
Çalacağımız şarkının notaları şöyle:
“Daha Dün Annemizin Kollarında Yaşarken” Çocuk Şarkısı Notaları:
Da-ha-dün-an-ne-mi-zin
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Kol-la-rın-da-ya-şar-ken
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
Çi-çek-li-bah-çe-mi-zin
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Yol-la-rın-da-ko-şar-ken
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
Şim-di-o-kul-lu-ol-duk
Sol-sol-fa-fa-mi-mi-re
g-g-f-f-e-e-d
Sı-nıf-la-rı-dol-dur-duk
Sol-sol-fa-fa-mi-mi-re
g-g-f-f-e-e-d
Se-vinç-li-yiz-he-pi-miz
Do-do-sol-sol-la-la-sol
c-c-g-g-a-a-g
Ya-şa-sın-o-ku-lu-muz
Fa-fa-mi-mi-re-re-do
f-f-e-e-d-d-c
*/
// Buzzer dijital 9 numaralı pine bağlı
const int buzzerPini = 9;
//Şarkımızın es'lerle birlikte nota sayısı 64'tür.
const int sarkiUzunlugu = 64;
//Şarkımıza ait notaları es'lerle(boşluklar) diziye atıyoruz.
char sarkinotalari[] = "ccggaag ffeeddc ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc ";
//Boşluklar bir es'i ifade eder
//Şarkımıza ait her nota 2 vuruş çalsın.
int vurusSayisi = 2;
//Notalar arası beklemeyi belirlemek için tempo isimli bir değişken tanımladık.
int tempo = 300;
void setup()
{
//Buzzer pini çıkış olarak ayarlandı
pinMode(buzzerPini, OUTPUT);
}
void loop()
{
int i, durak;
for (i = 0; i < sarkiUzunlugu; i++) // Şarkımıza notaları atamak için döngüyü çalıştırıyoruz.
{
durak = vurusSayisi * tempo; // Nota ya da es'lerin uzunluğunu durak olarak belirliyoruz.
if (sarkinotalari[i] == ' ') // Notalar arasında es mi var? Boşluk yani...
{
delay(durak); // durak değişkeni kadar bekle
}
else // es yoksa notaları çal...
{
tone(buzzerPini, frekans(sarkinotalari[i]), durak);
delay(durak); // durak kadar bekleme yap
}
delay(tempo / 10); // Notalar arası 30 ms bekle...
}
while (1); // Şarkıyı 1 kez çalmak için burada döngüyü durdurduk.
//Sürekli çalsın istiyorsanız bu döngüyü kaldırabilirsiniz.
}
int frekans(char nota)
{
// Bu frekans fonksiyonu notaları harflendirir ve
// tone() fonksiyonu için nota karşılığı olan frekansı
// hz (hertz) cinsinden döndürür
int i;
const int notaSayisi = 8; // DO'dan İNCE DO'ya 8 notamız var...
char notaHarfleri[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int notaFrekanslari[] = {262, 294, 330, 349, 392, 440, 494, 523};
//Bu döngüde harflere frekans karşılığını atamış olacağız.
//Böylece frekans değeri yerine belirlediğimiz harfleri ya da sembolleri kullanabiliriz.
for (i = 0; i < notaSayisi; i++) // Step through the notes
{
if (notaHarfleri[i] == nota) //Nota var mı?
{
return (notaFrekanslari[i]); // Varsa frekans karşılığını döndür...
}
}
//Hiçbir nota yoksa bile null değer döndürmemiz gerekiyor.
// Çünkü frekans fonksiyonumuz değer döndürmesi gereken bir fonksiyon...
return (0);
}
Yorumunuzu Ekleyin