Tutorial ESP32 14/55 - Memainkan Nada Musik Kustom Menggunakan Kit Pembelajaran IoT SunFounder ESP32
Dalam tutorial ini, kita akan mempelajari cara menggunakan mikrokontroler SunFounder ESP32 untuk memainkan not musik menggunakan buzzer pasif dan transistor. Proyek ini bertujuan untuk mendemonstrasikan cara menghasilkan suara dengan frekuensi tertentu dengan mengendalikan buzzer melalui pin GPIO ESP32.

Kita akan menghubungkan buzzer pasif ke ESP32, yang memungkinkan kita menghasilkan not musik yang berbeda berdasarkan frekuensi yang kita berikan. Pengaturan ini mencakup penggunaan transistor untuk menyalakan dan mematikan buzzer dengan kecepatan tinggi, menciptakan gelombang suara yang dapat kita dengar. Untuk penjelasan lebih lanjut tentang proyek ini, pastikan untuk menonton video (di video pada 00:30).
Penjelasan Perangkat Keras
Komponen utama yang digunakan dalam proyek ini meliputi mikrokontroler SunFounder ESP32, buzzer pasif, dan transistor NPN (2N8050). ESP32 adalah papan pengembangan yang kuat dengan kemampuan Wi-Fi dan Bluetooth bawaan, menjadikannya serbaguna untuk berbagai aplikasi IoT. Dalam kasus ini, ia akan menghasilkan sinyal untuk mengendalikan buzzer.
Buzzer pasif beroperasi dengan menghasilkan suara ketika tegangan bolak-balik diterapkan padanya. Tidak seperti buzzer aktif, yang memiliki osilator internal, buzzer pasif memerlukan sinyal eksternal untuk menghasilkan suara. Transistor berfungsi sebagai sakelar, memungkinkan ESP32 mengendalikan buzzer tanpa memberi daya secara langsung, memastikan bahwa peringkat arus mikrokontroler tidak terlampaui.
Detail Lembar Data
| Produsen | SunFounder |
|---|---|
| Nomor bagian | Buzzer Pasif |
| Tegangan Operasi | 3,3 V - 5 V |
| Frekuensi Resonansi | 2 kHz - 4 kHz |
| Konsumsi Arus | ≤ 30 mA |
| Tingkat Tekanan Suara | ≥ 70 dB |
| Kemasan | Through-hole |
| Catatan / varian | Tidak ada |
- Pastikan polaritas yang benar saat menghubungkan buzzer.
- Gunakan resistor pembatas arus untuk basis transistor.
- Hubungkan buzzer ke catu daya yang kompatibel dengan peringkat tegangannya.
- Waspadai melebihi peringkat arus maksimum transistor.
- Jaga kerapian kabel untuk menghindari korsleting.
- Uji rangkaian sebelum mengunggah kode untuk menghindari kerusakan komponen.
- Gunakan papan roti untuk koneksi komponen yang mudah.
- Pastikan untuk melakukan debounce pada input jika menggunakan tombol.
- Pertimbangkan menambahkan heatsink untuk transistor jika digunakan pada arus tinggi.
Instruksi Pengkabelan

Untuk mengkabel komponen, mulailah dengan menghubungkan terminal positif buzzer pasif ke pin 3.3V pada ESP32. Terminal negatif buzzer harus terhubung ke kolektor transistor NPN. Pin emitor transistor harus dihubungkan ke ground (GND) ESP32.
Selanjutnya, hubungkan resistor 1 kΩ dari basis transistor ke pin GPIO 14 pada ESP32. Resistor ini membatasi arus yang mengalir ke basis transistor. Terakhir, pastikan semua koneksi ground diikat bersama untuk menyediakan referensi umum untuk rangkaian.
Contoh Kode & Penjelasan
const int buzzerPin = 14; // pin buzzer
void setup()
{
pinMode(buzzerPin, OUTPUT); // Atur sebagai output
}
Dalam kode, kita mendefinisikan variabel konstan buzzerPin yang diatur ke 14, menunjukkan pin GPIO yang terhubung ke basis transistor. Dalam fungsi setup(), kita mengatur pin ini sebagai OUTPUT, memungkinkan ESP32 mengendalikan buzzer.
void loop()
{
for (int i = 0; i < 50; i++) // Ulangi 50 kali dan mainkan nada pendek setiap kali
{
digitalWrite(buzzerPin, HIGH); // Atur ke HIGH untuk membuat buzzer berbunyi
delay(3); // Tunggu 3 milidetik
digitalWrite(buzzerPin, LOW); // LOW untuk mematikan buzzer
delay(3); //
}
delay(1000); // Tunggu 1 detik sebelum memulai loop berikutnya
}
Fungsi loop() berisi for-loop yang berjalan 50 kali. Setiap iterasi menyalakan dan mematikan buzzer dengan cepat, menghasilkan nada. Penundaan 3 milidetik mengontrol berapa lama buzzer diaktifkan dan dinonaktifkan, sementara penundaan 1 detik di akhir loop memberikan jeda sebelum mengulang.
Demonstrasi / Apa yang Diharapkan
Setelah pengkabelan selesai dan kode diunggah, Anda akan mendengar serangkaian nada pendek yang dihasilkan oleh buzzer. Jika buzzer tidak berbunyi, periksa koneksi Anda, terutama orientasi transistor dan nilai resistor. Pastikan pin yang benar digunakan dalam kode dan ESP32 diberi daya dengan benar.
Selama demonstrasi, jika Anda mengalami masalah, itu mungkin disebabkan oleh pengkabelan yang salah atau menggunakan pin yang salah untuk buzzer. Periksa pengkabelan sesuai instruksi dan pastikan catu daya memadai (di video pada 08:15).
Stempel Waktu Video
- 00:00 Mulai
- 1:52 Pengenalan proyek
- 4:11 Penjelasan Pengkabelan
- 8:11 Memilih papan ESP32 dan port COM di Arduino IDE
- 9:53 Penjelasan kode Arduino
- 13:17 Demonstrasi proyek
- 13:58 Kode dan demonstrasi Proyek 2
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
}
Common Course Links
Common Course Files
Sumber daya & referensi
-
DokumentasiESP32 Tutorial 14/55- SunFounder Resources page for custom tonedocs.sunfounder.com
Berkas📁
Lembar Data (pdf)
-
Buzzer MB12A05 C96093 datasheet
Buzzer_MB12A05_C96093_datasheet.pdf0.97 MB -
NPN Epitaxial Silicon Transistor SS8050 datasheet
SS8050-datasheet.pdf0.19 MB