HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
Arduino'dan Şarkılar: Kendi Müzik Kutunuzu Yapın

Arduino'dan Şarkılar: Kendi Müzik Kutunuzu Yapın

Arduino'dan Şarkılar: Kendi Müzik Kutunuzu Yapın

Önceki projelerimizde ışıkla oynadık, şimdi sıra sesin gücünü keşfetmekte. Aktif buzzer'lar sadece "bip" sesi çıkarırken, pasif buzzer'lar farklı frekanslarda titreşerek notaları çalmamıza olanak tanır. Bu projeyle, kendi elektronik müzik aletinizi yaparak Arduino'nun yaratıcı potansiyelini bir kez daha göreceksiniz.

Gerekli Malzemeler

  • Arduino Uno: Müzik kutumuzun beyni.
  • 1 adet pasif buzzer: Notaları çalacak olan ses elemanımız. (Aktif buzzer'dan farklıdır, iki bacağı eşittir.)
  • Breadboard: Devre elemanlarını bağlamak için.
  • Jumper Kablolar: Bağlantılar için gerekli.

Devre Kurulumu

Pasif buzzer'ın bağlantısı oldukça basittir.

  1. Pasif Buzzer'ı Breadboard'a yerleştirin.
  2. Buzzer'ın bir bacağını bir jumper kabloyla Arduino'nun dijital Pin 8'e bağlayın.
  3. Buzzer'ın diğer bacağını ise Arduino'daki GND (Toprak) pinine bağlayın.

Notalar ve Frekanslar

Müzik kutumuzu programlamak için, notaların hangi frekanslara karşılık geldiğini bilmemiz gerekir. Arduino'da notaları çalmak için tone() fonksiyonunu kullanacağız. Bu fonksiyon, parametre olarak pin numarasını ve çalınacak notanın frekansını (Hertz cinsinden) alır.

Aşağıdaki tablo, sık kullanılan notaların frekanslarını göstermektedir:

NotaFrekans (Hz)
Do (C)262
Re (D)294
Mi (E)330
Fa (F)349
Sol (G)392
La (A)440
Si (B)494
İnce Do (C)523

E-Tablolar'a aktar

Kodlama Zamanı!

Devreniz hazırsa, Arduino IDE'yi açın ve aşağıdaki kodla kendi müzik kutunuzu programlayın.

C

// Pasif buzzer'ın bağlı olduğu pini tanımla
const int buzzerPin = 8;

// Notaların frekanslarını tanımla
#define NOTE_C4  262
#define NOTE_D4  294
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_G4  392
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523

// Çalınacak melodiyi notalar dizisi olarak tanımla
// "Do", "Re", "Mi", "Fa", "Sol", "Fa", "Mi", "Re", "Do"
int melody[] = {
  NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4
};

// Her bir notanın süresini (milisaniye cinsinden) tanımla
int noteDurations[] = {
  500, 500, 500, 500, 500, 500, 500, 500, 500
};

void setup() {
  // Buzzer pinini çıkış olarak ayarla
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  // Melodideki her bir notayı sırayla çal
  for (int thisNote = 0; thisNote < 9; thisNote++) {
    
    // Notalar arasındaki bekleme süresini hesapla
    int noteDuration = 1000 / noteDurations[thisNote];
    
    // tone() fonksiyonu ile notayı çal
    tone(buzzerPin, melody[thisNote], noteDuration);
    
    // Notadan sonra kısa bir duraklama ekleyerek notaların ayrık çalmasını sağla
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    
    // tone() fonksiyonunu durdurmak için noTone() kullan
    noTone(buzzerPin);
  }
  
  // Melodi bittikten sonra 2 saniye bekle ve tekrar başla
  delay(2000);
}

Kodu Anlayalım

  • const int buzzerPin = 8;: Buzzer'ı bağladığımız pini tanımladık.
  • #define NOTE_...: Bu satırlar, notaların frekanslarına kolay erişim için takma adlar (makrolar) oluşturur.
  • int melody[] = { ... };: Çalınacak notaların sırasını bu dizi içinde belirledik. Kendi melodinizi oluşturmak için notaları değiştirebilirsiniz.
  • int noteDurations[] = { ... };: Her bir notanın kaç milisaniye çalacağını belirledik. Bu, ritmi kontrol etmenizi sağlar.
  • tone(buzzerPin, melody[thisNote], noteDuration);: Bu en önemli fonksiyondur. Arduino'ya, buzzerPin'den melody[thisNote] frekansında noteDuration süresi boyunca bir ses sinyali göndermesini söyler.
  • delay(pauseBetweenNotes);: Notaların birbirine karışmaması için aralarında küçük bir duraklama bırakırız.
  • noTone(buzzerPin);: Bir notanın çalınması bittikten sonra sesi keser.

Kodu Yükleme

  1. Arduino'nuzu USB kablosuyla bilgisayarınıza bağlayın.
  2. Arduino IDE'de Araçlar > Kart > Arduino Uno'yu ve Araçlar > Port menüsünden doğru portu seçin.
  3. Kodu yükleyin.

Kod yüklendikten sonra, Arduino'dan melodinin çalmaya başladığını duyacaksınız. Artık kendi müziğinizi kodlayabilirsiniz! Bu proje, gelecekte ses sensörleri veya diğer sensörlerle interaktif ses deneyimleri oluşturmanız için harika bir adımdır. Belki de bir sonraki projenizde, hareket sensörüyle tetiklenen bir alarm melodisi tasarlarsınız.