Search Code

ESP32 Eğitimi 14/55 - SunFounder ESP32 IoT Öğrenme Kiti Kullanarak Özel Müzik Notası Çalma

ESP32 Eğitimi 14/55 - SunFounder ESP32 IoT Öğrenme Kiti Kullanarak Özel Müzik Notası Çalma

Bu eğitimde, SunFounder ESP32 mikrodenetleyicisini pasif bir buzzer ve bir transistör kullanarak müzik notaları çalmak için nasıl kullanacağımızı öğreneceğiz. Proje, ESP32'nin GPIO pinleri aracılığıyla buzzer'ı kontrol ederek belirli frekanslarda ses üretmeyi göstermeyi amaçlamaktadır.

ESP32'ye pasif bir buzzer bağlayacağız; bu, sağladığımız frekansa göre farklı müzik notaları üretmemizi sağlayacaktır. Bu kurulum, buzzer'ı yüksek hızlarda açıp kapatmak için bir transistör kullanmayı içerir ve duyabileceğimiz ses dalgaları oluşturur. Proje hakkında daha fazla netlik için videoyu (videoda 00:30'da) kontrol ettiğinizden emin olun.

ESP32-13-buzzer-şematik

Donanım Açıklaması

Bu projede kullanılan ana bileşenler SunFounder ESP32 mikrodenetleyicisi, pasif bir buzzer ve bir NPN transistörüdür (2N8050). ESP32, yerleşik Wi-Fi ve Bluetooth özelliklerine sahip güçlü bir geliştirme kartıdır ve çeşitli IoT uygulamaları için çok yönlüdür. Bu durumda, buzzer'ı kontrol etmek için sinyaller üretecektir.

Pasif buzzer, üzerine alternatif bir voltaj uygulandığında ses üreterek çalışır. Yerleşik bir osilatöre sahip olan aktif buzzer'ların aksine, pasif buzzer'lar ses üretmek için harici bir sinyal gerektirir. Transistör bir anahtar görevi görerek ESP32'nin buzzer'ı doğrudan beslemeden kontrol etmesini sağlar ve mikrodenetleyicinin akım değerinin aşılmamasını garanti eder.

S87050_transistör

Veri Sayfası Detayları

Üretici SunFounder
Parça numarası Pasif Buzzer
Çalışma Voltajı 3,3 V - 5 V
Rezonans Frekansı 2 kHz - 4 kHz
Akım Tüketimi ≤ 30 mA
Ses Basınç Seviyesi ≥ 70 dB
Paket Delikli (Through-hole)
Notlar / varyantlar Yok

 

  • Buzzer'ı bağlarken doğru polariteyi sağlayın.
  • Transistör tabanı için akım sınırlayıcı bir direnç kullanın.
  • Buzzer'ı voltaj değeriyle uyumlu bir güç kaynağına bağlayın.
  • Transistörün maksimum akım değerini aşmamaya dikkat edin.
  • Kısa devreleri önlemek için kablolamayı düzenli tutun.
  • Bileşen hasarını önlemek için kodu yüklemeden önce devreyi test edin.
  • Kolay bileşen bağlantıları için bir breadboard kullanın.
  • Buton kullanıyorsanız girişleri debounce ettiğinizden emin olun.
  • Transistörü yüksek akımda kullanıyorsanız bir soğutucu eklemeyi düşünün.

Bağlantı Talimatları

ESP32-13-buzzer-wriing

Bileşenleri bağlamak için, pasif buzzer'ın pozitif terminalini ESP32 üzerindeki 3.3V pinine bağlayarak başlayın. Buzzer'ın negatif terminali NPN transistörünün kollektörüne bağlanmalıdır. Transistörün emitör pini ESP32'nin toprağına (GND) bağlanmalıdır.

Ardından, transistörün tabanından ESP32 üzerindeki GPIO pin 14'e 1 kΩ'luk bir direnç bağlayın. Bu direnç, transistörün tabanına akan akımı sınırlar. Son olarak, devre için ortak bir referans sağlamak üzere tüm toprak bağlantılarının birbirine bağlandığından emin olun.

Kod Örnekleri ve Açıklama

const int buzzerPin = 14; // buzzer pini

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

Kodda, transistörün tabanına bağlı GPIO pinini belirten buzzerPin adında sabit bir değişken tanımlıyoruz ve 14 olarak ayarlıyoruz. setup() fonksiyonunda bu pini OUTPUT olarak ayarlıyoruz, böylece ESP32'nin buzzer'ı kontrol etmesine izin veriyoruz.

void loop()
{
  for (int i = 0; i < 50; i++) // 50 kez döngü yap ve her seferinde kısa bir ton çal
  {
    digitalWrite(buzzerPin, HIGH); // Buzzer'ın ses çıkarması için HIGH yap
    delay(3); // 3 milisaniye bekle
    digitalWrite(buzzerPin, LOW); // Buzzer'ı kapatmak için LOW yap
    delay(3); // 
  }
  delay(1000); // Sonraki döngüye başlamadan önce 1 saniye bekle
}

loop() fonksiyonu 50 kez çalışan bir for döngüsü içerir. Her yineleme buzzer'ı hızlıca açar ve kapatır, bir ton üretir. 3 milisaniyelik gecikmeler buzzer'ın ne kadar süre aktif ve pasif kalacağını kontrol ederken, döngünün sonundaki 1 saniyelik gecikme tekrarlamadan önce bir duraklama sağlar.

Gösterim / Beklentiler

Bağlantı tamamlandığında ve kod yüklendiğinde, buzzer tarafından üretilen bir dizi kısa ton duymalısınız. Buzzer ses çıkarmıyorsa, bağlantılarınızı, özellikle transistörün yönünü ve direnç değerini kontrol edin. Kodda doğru pinin kullanıldığından ve ESP32'nin düzgün şekilde beslendiğinden emin olun.

Gösterim sırasında sorun yaşarsanız, bunun nedeni yanlış bağlantı veya buzzer için yanlış pin kullanımı olabilir. Bağlantıları talimatlara göre kontrol edin ve güç kaynağının yeterli olduğundan emin olun (videoda 08:15'te).

Video Zaman Damgaları

  • 00:00 Başlangıç
  • 1:52 Projeye giriş
  • 4:11 Bağlantı Açıklaması
  • 8:11 Arduino IDE'de ESP32 kartı ve COM portu seçimi
  • 9:53 Arduino kodu açıklaması
  • 13:17 Proje gösterimi
  • 13:58 Proje 2 kodu ve gösterimi

Görseller

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
Dil: C++
const int buzzerPin = 14; //buzzer pin
const int resolution = 8; 

// Frequencies of the 7 musical notes (in Hz)
int frequencies[] = {262, 294, 330, 349, 392, 440, 494};


// Function to play a frequency on the buzzer for a given duration
void playFrequency(int frequency, int duration) {
  ledcWriteTone(buzzerPin, frequency); // Start the tone
  delay(duration); // Wait for the specified duration
  ledcWriteTone(buzzerPin, 0); // Stop the buzzer
}

void setup() {
  ledcAttach(buzzerPin, 2000, 8); // Set up the PWM pin
}

void loop() {
  for (int i = 0; i < 7; i++) {
    playFrequency(frequencies[i], 300); // Play each note for 300ms
    delay(50); // Add a brief pause between the notes
  }
  delay(1000); // Wait for 1 second before replaying the sequence
}

Kaynaklar ve referanslar

Dosyalar📁

Veri Sayfası (pdf)