Arduino buzzer ile melodi çalalım (daha dün annemizin)

Bu projede bazı melodileri çalmak için piezoelektrik bir zil (buzzer) kullanacağız. Notaların frekanslarını öğrenip 8 bitte daha dün annemizin dinleyeceğiz.

Arduino buzzer ile melodi çalalım (daha dün annemizin)

Proje için gerekli elemanlar

  • Arduino uno r3 kartı
  • Jumper kablolar
  • Piezo buzzer (buzzer)

Nasıl Çalışır ?

Arduino melodisi, tanınabilir notlara benzeyen frekanslar oluşturmak için bir piezo zil (buzzer) kullanır. Arduino IDE arayüzünü, belirli bir melodiyi çalmak için notaların sıralamasını, oranını ve süresini belirlemek için kullanırız.

Piezo (buzzer), küçük oyuncaklarda sıklıkla kullanılan ucuz ses çıkaran parçadır. Plastik gövdesi olmayan bir piezo elemanı, pozitif (tipik olarak kırmızı) ve negatif (tipik olarak siyah) telleri olan altın metalik bir disk gibi görünür. Bir piezo sadece voltaj uygulayarak yarattığımız bir klik sesini çıkarabilir. Piezo'nun belirli bir frekansta saniyede yüzlerce kez ses çıkarmasını sağlayarak tanınabilir notlar oluşturabiliriz, bu yüzden ilk önce istediğimiz farklı tonların frekansını bilmemiz gerekir.

Tablo notaları ve bunlara karşılık gelen frekansları göstermektedir. Periyot, frekansın oluşturulduğu mikrosaniye cinsinden sürenin süresidir. Notayı oluşturmak için kodda kullanılan timeHigh değerini almak için periyot değerini yarıya indiririz.

NOTA FREKANS PERİYOT TIMEHIGH
C 261 Hz 3,830 1915
D 294 Hz 3,400 1700
E 329 Hz 3,038 1519
F 349 Hz 2,864 1432
G 392 Hz 2,550 1275
A 440 Hz 2,272 1136
B 493 Hz 2,028 1014
C 523 Hz 1,912 956

Devre Şeması

Arduino IDE kodları

int speakerPin = 9; // buzzer bağlantı pini
int length = 15; // toplam nota sayısı
char notes[] = "ccggaagffeeddc "; // sondaki boşluk es vermek için
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;

void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(tone);  }
}

// TimeHigh değerini belirli notlara ayarlama
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

for (int i = 0; i < 8; i++) { // Notaya karşılık gelen ses tonu
    if (names[i] == note) {
        playTone(tones[i], duration);   }
   }
}

void setup() {
pinMode(speakerPin, OUTPUT);
}
// melodiyi çalalım
void loop() {
for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
        delay(beats[i] * tempo); // Bekleme yani es verme
     }
    else {
        playNote(notes[i], beats[i] * tempo);
     }
delay(tempo / 2); // notalar arası bekleme süresi
}
}
Arduino buzzer kullanımı
  • Yazı Etiketleri :
  • buzzer kullanımı
  • arduino buzzer ile melodi
  • arduino daha dün annemizin
Arduino hareket sensörü alarmı yapımı
Yazıyı Oku

Arduino hareket sensörü alarmı yapımı

Arduino iki butonla iki led kontrolü (mblock 5)
Yazıyı Oku

Arduino iki butonla iki led kontrolü (mblock 5)

Arduino davetsiz misafiri haber veren proje (hc-sr04)
Yazıyı Oku

Arduino davetsiz misafiri haber veren proje (hc-sr04)

Arduino robot kol yapalım, joystickle hareket ettirelim
Yazıyı Oku

Arduino robot kol yapalım, joystickle hareket ettirelim

Arduino joystickle servo motoru hareket ettirelim
Yazıyı Oku

Arduino joystickle servo motoru hareket ettirelim

Arduino ile servo motor kullanalım
Yazıyı Oku

Arduino ile servo motor kullanalım

Menu