Pernah mendengar piezo tone buzzer? Atau buzzer aktif dan pasif? Nah sebenarnya apa sih itu? Dan apa bedanya antara aktif dan pasif? Secara fisik atau tampilan, keduanya tidak memiliki perbedaan yang menonjol, bahkan bisa dikatakan sama. Bedanya hanya ada di cara penggunaannya saja, jika buzzer tersebut adalah buzzer aktif, maka jika ada tegangan yang masuk akan secara langsung mengeluarkan suara. Sedangkan buzzer pasif tidak akan mengeluarkan suara secara langsung ketika ada tegangan yang masuk. Buzzer pasif harus diberikan sinyal menggunakan generator atau secara mudah kita dapat memprogramnya melalui Arduino.
Sejatinya, buzzer sendiri adalah alat yang mampu mengeluarkan suara dengan gelombang tertentu. Buzzer sendiri memiliki skema konstruksi yang mirip dengan piezoelektrik (yaitu alat yang bisa mengubah tekanan atau gerak menjadi aliran listrik). Maka dari itu, tidak sedikit orang mengatakan buzzer sebagai piezo tone buzzer. Biasanya buzzer digunakan sebagai indikator peringatan dalam sebuah alat rakitan. Dengan menggunakan Arduino, kita dapat menentukan frekuensi suara yang dihasilkan oleh buzzer dan menentukan berapa lama nada atau suara tersebut dibunyikan. Bagaimana caranya? Simak langkah-langkah berikut ini.
1.Persiapan
Sebelum melakukan percobaan menggunakan buzzer, tidak perlu khawatir alat yang kalian punya itu buzzer aktif atau pasif karena keduanya sama-sama dapat diprogram menggunakan Arduino. Lalu, persiapkan alat yang disebutkan di bawah ini:
- Arduino Board
Gambar 1. Arduino Board (Arduino Uno R3)
- Buzzer
Gambar 2. Buzzer Aktif/Pasif
2. Skematik Rangkaian
Tidak serumit proyek lainnya, skematik rangkaian pada percobaan kali ini sangat mudah, yaitu menyambungkan sisi positif pada buzzer ke pin PWM (admin menggunakan pin 11 sebagai pin pwm output). Kemudian menyambungkan sisi negatif dari buzzer ke GND Arduino. Untuk detailnya perhatikan Gambar 3 di bawah ini:
Gambar 3. Diagram Rangkaian Buzzer
Jika sudah dirangkai seperti gambar di atas, mari kita lanjutkan ke tahap selanjutnya!
3.Membuat Program
Untuk membuat program buzzer pada Arduino sebenarnya sangat simple. Namun perlu diketahui bahwa ada 2 cara untuk mengendalikan buzzer menggunakan Arduino. Kita coba menggunakan cara pertama ya! Ikuti kode di bawah ini!
int Buzzer=11;
void setup() {
pinMode (Buzzer,OUTPUT);
}
void loop() {
tone(Buzzer,450);
delay(500);
noTone(Buzzer);
delay(500);
}
Dalam kode pertama, kita mengendalikan dengan syntax atau perintah “tone” dan “noTone” setelah menyatakan bahwa pin 11 kita panggil dengan sebutan “Buzzer” dan mendefinisikan “Buzzer” sebagai pin “OUTPUT” pada Arduino. Di dalam void loop(), terdapat syntax “tone(Buzzer,450)”. Nah kode ini lah yang memberi tahu bahwa Arduino harus memberi voltase tertentu pada pin “Buzzer” untuk menciptakan suara dengan frekuensi 450Hz. Setelah itu ada syntax “delay(500)” dimana ini menentukan berapa lama kode sebelumnya dijalankan sebelum masuk ke kode selanjutnya yaitu “noTone” yang fungsinya untuk mematikan “Buzzer”. Setelah dimatikan, durasi lama matinya juga ditentukan oleh syntax delay yang ada di setelah “noTone” pada kode di atas. Jadi kode ini akan menjalankan program yang mana buzzer akan diaktifkan dengan frekuensi 450Hz selama 500ms atau 500 mikrodetik dan dimatikan selama 500ms atau 500 mikrodetik juga. Jika hal ini hanya ingin dilakukan sekali oleh Arduino, maka kalian bisa membuat rangkaian kode ini di dalam void setup(), dan biarkan void loop() tidak terisi atau kosong saja.
Lalu bagaimana cara yang kedua? Cara yang kedua ini sangat efektif dalam penulisan kode karena tidak perlu menggunakan syntax “noTone” untuk mematikan buzzer. Simak kode dibawah ini ya!
int Buzzer=11;
void setup() {
pinMode (Buzzer,OUTPUT);
}
void loop() {
tone(Buzzer,450,500);
delay(1000);
}
Oke, pada dasarnya untuk memudahkan kalian memahami syntax ini, saya membuat program yang fungsinya sama dengan program sebelumnya, yaitu menyalakan buzzer selama 500ms atau 500 mikrodetik dan mematikan selama 500ms atau 500 mikrodetik. Saya jelaskan terlebih dahulu bagaimana syntax ini dibaca oleh program. “tone(Buzzer,450,500)” ini mengatakan pada Arduino bahwa Arduino harus menyalakan buzzer dengan frekuensi 450Hz selama 500ms atau 500 mikrodetik saja. Setelah kode ini selesai dilakukan, maka program akan lanjut membaca kode selanjutnya. Dimana kode selanjutnya adalah “delay(1000)” yang artinya kita harus membiarkan proses sebelumnya selesai dalam waktu 1 detik atau 1000 mikrodetik. Karena proses sebelumnya sudah melakukannya selama 500 mikrodetik, maka selanjutnya buzzer akan mati atau tidak berbunyi selama sisa pada delay tersebut. Jadi dari awal “tone” pada buzzer dijalankan, proses delay juga dijalankan secara bersamaan. Untuk lebih mudahnya bisa kita lihat pada ilustrasi di bawah ini.
Gambar 4. Ilustrasi Waktu Nyala Buzzer
Nah sudah paham kan sekarang? Lalu berapa minimum frekuensi dan maksimal frekuensi yang dapat dihasilkan oleh buzzer pada Arduino? Klik disini untuk lebih jelasnya ya! Bagaimana jika buzzer memainkan sebuah melodi dari lagu? Apakah bisa? Jawabannya bisa, kalau kamu mau lebih tau tentang bagaimana caranya, klik disini. Selamat mencoba!
4.Hasil
Penasaran dengan hasil kode-kode yang ditulis diatas? Putar video dibawah ini ya!
Penulis: Malik Athafarras
Editor: Ariq Naufal R
kak izin bertanya, bagaimana memanggil variabel buzzer untuk beberapa sensor, terima kasih
Hallo, maaf baru bisa membalas.
Untuk memanggil variable buzzer untuk beberapa sensor dapat melalui beberapa cara.
Diantaranya adalah:
1. Menggunakan syntax if else didalam sensor ketika aktif, Metodenya langsung ketika sensor aktif buzzer diaktifkan
2. Menggunakan void terpisah atau program terpisah. Metodenya mirip dengan if else diatas, namun perbedaannya tidak perlu mengaktifkan buzzer secara manual, hanya perlu memanggil void yang sudah di buat,
Sejauh ini itu yang terpikirkan oleh saya, mungkin jika anda memiliki skenario program yang anda mau buat bisa di share dan nanti jika ada waktu saya coba bantu terangkan kedua metode tersebut di aplikasikan ke skenario program anda.
Terima kasih telah membaca artikel ini.
Mohon di bantu share agar orang-orang juga dapat mempelajari hal yang sama.
Cheers,
Malik Athafarras