Belajar membuat suara dan melodi dengan Arduino menggunakan buzzer aktif dan pasif.
Pernahkah kalian berpikir bagaimana speaker HP kalian bisa menghasilkan suara penyanyi favorit atau nada dering yang nyaring? Semua suara, dari bisikan hingga suara jet, pada dasarnya adalah getaran udara!
Dalam elektronik, kita menggunakan komponen bernama Transduser (seperti speaker atau buzzer) untuk mengubah energi listrik menjadi getaran fisik (suara). Banyaknya getaran per detik disebut Frekuensi, dan diukur dalam satuan Hertz (Hz).
Di kit Arduino kalian, biasanya terdapat komponen kecil berbentuk silinder hitam bernama Buzzer. Tahukah kalian bahwa ada dua jenis buzzer yang terlihat hampir kembar tapi kerjanya berbeda?
Untuk mengontrol Buzzer Pasif, Arduino menyediakan fungsi khusus yaitu tone() dan noTone().
Parameter:
noTone().Berikut adalah referensi nilai frekuensi untuk tangga nada standar:
| Nada | Notasi Angka | Frekuensi (Hz) |
|---|---|---|
| Do (C) | 1 | 262 |
| Re (D) | 2 | 294 |
| Mi (E) | 3 | 330 |
| Fa (F) | 4 | 349 |
| Sol (G) | 5 | 392 |
| La (A) | 6 | 440 |
| Si (B) | 7 | 494 |
| Do Tinggi (C5) | i | 523 |
Sekarang saatnya kita gabungkan konsep Array dengan fungsi tone() untuk memainkan sebuah lagu penuh! Kita akan menyimpan urutan nadanya di array pertama, dan durasi masing-masing nada di array kedua.
delay(durasi[i] * 1.2);. Kita menambahkan waktu jeda sedikit lebih lama (dikalikan 1.2) dari durasi nada itu sendiri. Kenapa? Supaya ada 'pemisah' antara nada satu dan nada berikutnya. Kalau tidak, lagu akan terdengar menyambung terus tanpa nafas!Selain untuk musik, buzzer sangat krusial dalam sistem peringatan/alarm. Pada project ini, kita akan membuat sistem alarm kebakaran sederhana yang mengeluarkan sirene naik-turun (frekuensi berubah bertahap) dan lampu LED berkedip.
Solusi:Pastikan kalian menggunakan Buzzer Pasif, bukan Aktif. Selain itu, cabut stiker kuning/putih yang menutup lubang buzzer di atasnya.
Solusi:Kalian sepertinya terbalik memakai Buzzer Aktif. Buzzer aktif tidak bisa merespon fungsi tone() dengan baik. Ganti dengan Buzzer Pasif.
Solusi:Cek batas perulangan di loop for. Pastikan kondisinya (i < 25) sesuai dengan jumlah data di dalam array kalian.
Bayangkan SMANSA sedang membuat bel pergantian jam pelajaran otomatis. Tugas kalian:
Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.
Apa yang paling mengejutkan atau menarik hari ini?
Lagu apa yang berhasil kalian ciptakan hari ini?
Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?
Bagian mana yang lebih sulit: menentukan frekuensinya atau menentukan durasinya?
Apa yang ingin kamu coba atau pelajari minggu depan?
Selain lagu dan alarm, sistem apa lagi yang menurutmu butuh komponen buzzer?
Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.