Pada proyek elektronika dan IoT, piezo buzzer sering digunakan sebagai komponen output suara untuk memberikan notifikasi, alarm, maupun efek audio sederhana. Dengan bantuan Arduino UNO, kita dapat mengontrol buzzer menggunakan tombol tekan sehingga buzzer dapat berbunyi hanya saat tombol ditekan atau bahkan memainkan sebuah melodi tertentu. Pada tutorial ini, kita akan mempelajari cara menggunakan Arduino Button Piezo Buzzer dengan mudah. Tutorial ini cocok untuk pemula yang sedang belajar dasar input dan output pada Arduino karena menggabungkan penggunaan tombol sebagai input dan buzzer sebagai output suara. Secara umum, kita akan mempelajari tentang cara membuat piezo buzzer berbunyi saat tombol ditekan, cara menghentikan suara buzzer saat tombol dilepas, cara memainkan melodi menggunakan piezo buzzer dan Arduino, dan cara kerja fungsi tone() dan noTone() pada Arduino.
Perangkat Keras yang Dibutuhkan
- Arduino UNO R3
- Kabel USB
- Breadboard
- Kabel jumper
- Modul tombol tekan
- Piezo buzzer 3-24V
- Modul buzzer piezo aktif
- Modul buzzer piezo pasif
Buzzer aktif biasanya hanya menghasilkan bunyi sederhana ketika diberi tegangan, sedangkan buzzer pasif dapat memainkan nada dan melodi menggunakan fungsi tone().
Baca juga: Arduino Button Toggle Relay dengan dan tanpa Debouncing
Wiring Diagram Arduino Piezo Buzzer
Mengenal Piezo Buzzer
Piezo buzzer adalah komponen elektronik yang dapat menghasilkan suara ketika diberikan sinyal listrik. Komponen ini banyak digunakan pada alarm, bel elektronik, sistem notifikasi, indikator suara, proyek IoT, dan robotika. Dalam Arduino, buzzer biasanya dikendalikan menggunakan pin digital output. Terdapat dua jenis piezo buzzer yang umum digunakan:
1. Active Buzzer → langsung berbunyi ketika diberi tegangan.
2. Passive Buzzer → membutuhkan sinyal frekuensi agar dapat menghasilkan nada tertentu.
Cara Kerja Arduino Button Piezo Buzzer
Pada project ini, push button digunakan sebagai input digital, sedangkan piezo buzzer berfungsi sebagai output suara. Ketika tombol ditekan, Arduino akan membaca perubahan status pada tombol lalu mengaktifkan buzzer sehingga buzzer dapat menghasilkan bunyi atau melodi sesuai program yang dibuat.
Alur kerjanya:
- Arduino membaca status push button
- Saat tombol ditekan, Arduino mendeteksi input
- Arduino mengaktifkan piezo buzzer
- Buzzer mengeluarkan suara atau nada
Tutorial ini menggunakan mode INPUT_PULLUP, sehingga logika tombol menjadi terbalik:
- Tombol tidak ditekan → bernilai HIGH
- Tombol ditekan → bernilai LOW
Kode Program Arduino Piezo Buzzer Suara Sederhana
Kode berikut digunakan untuk membuat buzzer berbunyi selama tombol ditekan.
const int BUTTON_PIN = 2; // Arduino pin connected to button's pin
const int BUZZER_PIN = 4; // Arduino pin connected to buzzer's pin
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
Serial.println("The button is being pressed");
digitalWrite(BUZZER_PIN, HIGH); // buzzer ON
}
else {
Serial.println("The button is unpressed");
digitalWrite(BUZZER_PIN, LOW); // buzzer OFF
}
}
Penjelasan Program
Pada bagian awal program, kita menentukan pin tombol dan buzzer.
const int BUTTON_PIN = 2;
const int BUZZER_PIN = 4;
Pin tombol diatur menggunakan mode INPUT_PULLUP.
pinMode(BUTTON_PIN, INPUT_PULLUP);
Dengan mode ini, kita tidak memerlukan resistor eksternal tambahan karena Arduino sudah menggunakan resistor pull-up internal.
Arduino kemudian membaca status tombol menggunakan:
digitalRead(BUTTON_PIN);
Jika tombol ditekan, buzzer akan diaktifkan:
digitalWrite(BUZZER_PIN, HIGH);
Jika tombol dilepas, buzzer dimatikan:
digitalWrite(BUZZER_PIN, LOW);
Langkah Pengujian
- Hubungkan Arduino ke komputer menggunakan kabel USB.
- Buka Arduino IDE.
- Pilih board dan port yang sesuai.
- Salin kode program ke Arduino IDE.
- Klik tombol Upload.
- Tekan dan tahan tombol beberapa detik.
- Dengarkan suara buzzer.
Saat tombol ditekan, buzzer akan berbunyi. Ketika tombol dilepas, suara buzzer akan berhenti.
Membuat Melodi dengan Piezo Buzzer Arduino
Selain menghasilkan bunyi sederhana, buzzer pasif juga dapat memainkan melodi menggunakan fungsi tone(). Fungsi tone() digunakan untuk menghasilkan frekuensi tertentu sehingga buzzer dapat memainkan nada musik.
Kode Program Arduino Piezo Buzzer Melodi
#include "pitches.h"
const int BUTTON_PIN = 2;
const int BUZZER_PIN = 4;
// notes in the melody:
int melody[] = {
NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5,
NOTE_E5,
NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5,
NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5,
NOTE_D5, NOTE_G5
};
// note durations
int noteDurations[] = {
8, 8, 4,
8, 8, 4,
8, 8, 8, 8,
2,
8, 8, 8, 8,
8, 8, 8, 16, 16,
8, 8, 8, 8,
4, 4
};
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
Serial.println("The button is being pressed");
buzzer();
}
}
void buzzer() {
int size = sizeof(noteDurations) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
int noteDuration = 1000 / noteDurations[thisNote];
tone(BUZZER_PIN, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(BUZZER_PIN);
}
}
Penjelasan Fungsi tone() dan noTone()
Fungsi berikut digunakan untuk memainkan nada:
tone(BUZZER_PIN, melody[thisNote], noteDuration);
Parameter:
- BUZZER_PIN → pin buzzer
- melody[thisNote] → frekuensi nada
- noteDuration → durasi nada
Sedangkan fungsi berikut digunakan untuk menghentikan suara:
noTone(BUZZER_PIN);
Membuat File pitches.h
Sebelum program melodi dijalankan, kita perlu membuat file tambahan bernama pitches.h yang berisi daftar frekuensi nada musik. File ini digunakan agar Arduino dapat mengenali konstanta nada seperti NOTE_C5, NOTE_D5, NOTE_E5, dan nada lainnya. Cara membuatnya cukup mudah, yaitu dengan klik ikon panah kecil pada Arduino IDE, kemudian pilih New Tab, lalu beri nama file pitches.h. Setelah itu, tempelkan daftar frekuensi nada ke dalam file tersebut.
Dengan adanya file pitches.h, penulisan program melodi menjadi lebih rapi dan mudah dipahami karena kita tidak perlu menuliskan angka frekuensi nada secara manual. Arduino cukup memanggil nama nada yang sudah tersedia di dalam file tersebut.
Kelemahan Penggunaan delay()
Program melodi di atas menggunakan fungsi delay(pauseBetweenNotes);. Penggunaan delay() akan menghentikan sementara proses program lainnya. Akibatnya, Arduino tidak dapat membaca sensor lain selama melodi dimainkan, tombol lain bisa terlambat dibaca, dan sistem multitasking menjadi terbatas. Untuk proyek yang lebih kompleks, disarankan menggunakan metode berbasis millis() atau library seperti ezBuzzer dan ezButton.
Aplikasi Arduino Piezo Buzzer
Piezo buzzer sangat sering digunakan dalam berbagai proyek Arduino seperti alarm keamanan, bel pintu digital, sistem notifikasi, robotika, smart home, timer otomatis, game elektronik sederhana, dan sistem peringatan sensor.
Baca juga: Arduino Button Motor Servo - Mengontrol Motor Servo dengan Tombol Menggunakan Arduino UNO
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino



0 on: "Arduino Button Piezo Buzzer - Cara Mengontrol Buzzer dengan Tombol Menggunakan Arduino UNO"