Pada project Arduino, penggunaan lebih dari satu tombol sangat umum ditemukan, misalnya pada sistem menu, game sederhana, kontrol robot, keypad custom, hingga panel kontrol elektronik. Namun, ketika jumlah tombol mulai bertambah, kode program biasanya menjadi lebih rumit, terutama jika harus menangani debounce, membaca perubahan status tombol, dan menghindari penggunaan fungsi delay().
Pada artikel ini, kita akan mempelajari cara menggunakan multiple button pada Arduino secara bersamaan dengan metode yang lebih rapi dan efisien. Kita juga akan menggunakan library ezButton untuk mempermudah proses debouncing sehingga pembacaan tombol menjadi lebih stabil dan akurat. Selain itu, tutorial ini juga membahas penggunaan array untuk mengelola banyak tombol sekaligus agar kode menjadi lebih singkat, scalable, dan mudah dikembangkan untuk project dengan jumlah tombol yang lebih banyak.
Perangkat Keras yang Dibutuhkan
- Arduino UNO R3
- Kabel USB
- Breadboard
- Kabel jumper
- Push button / tombol tekan
- Panel push button
- Modul push button
Wiring Diagram
Arduino Multiple Button dengan Debounce
Saat menggunakan banyak tombol, program biasanya mulai menjadi lebih kompleks, terutama jika tombol perlu menggunakan debounce, program harus mendeteksi perubahan status tombol, dan beberapa tombol ditekan hampir bersamaan. Jika semua ditangani manual, kode bisa cepat menjadi panjang dan sulit dibaca. OLeh karena itu, kita bisa memakai library ezButton untuk mempermudah proses pembacaan tombol. Library ini membantu menangani debounce otomatis, deteksi tombol ditekan, deteksi tombol dilepas, dan pembacaan state tombol. Jadi kita tidak perlu lagi repot mengatur timer atau variabel debounce sendiri.
Kode Arduino — Multiple Button dengan Debounce
#include <ezButton.h>
#define BUTTON_NUM 5
#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define BUTTON_PIN_3 4
#define BUTTON_PIN_4 5
#define BUTTON_PIN_5 6
ezButton button1(BUTTON_PIN_1);
ezButton button2(BUTTON_PIN_2);
ezButton button3(BUTTON_PIN_3);
ezButton button4(BUTTON_PIN_4);
ezButton button5(BUTTON_PIN_5);
void setup() {
Serial.begin(9600);
button1.setDebounceTime(100);
button2.setDebounceTime(100);
button3.setDebounceTime(100);
button4.setDebounceTime(100);
button5.setDebounceTime(100);
}
void loop() {
button1.loop();
button2.loop();
button3.loop();
button4.loop();
button5.loop();
// membaca status tombol setelah debounce
int button1_state = button1.getState();
int button2_state = button2.getState();
int button3_state = button3.getState();
int button4_state = button4.getState();
int button5_state = button5.getState();
/*
Serial.print("Button 1: ");
Serial.println(button1_state);
Serial.print("Button 2: ");
Serial.println(button2_state);
Serial.print("Button 3: ");
Serial.println(button3_state);
Serial.print("Button 4: ");
Serial.println(button4_state);
Serial.print("Button 5: ");
Serial.println(button5_state);
*/
if (button1.isPressed())
Serial.println("Button 1 ditekan");
if (button1.isReleased())
Serial.println("Button 1 dilepas");
if (button2.isPressed())
Serial.println("Button 2 ditekan");
if (button2.isReleased())
Serial.println("Button 2 dilepas");
if (button3.isPressed())
Serial.println("Button 3 ditekan");
if (button3.isReleased())
Serial.println("Button 3 dilepas");
if (button4.isPressed())
Serial.println("Button 4 ditekan");
if (button4.isReleased())
Serial.println("Button 4 dilepas");
if (button5.isPressed())
Serial.println("Button 5 ditekan");
if (button5.isReleased())
Serial.println("Button 5 dilepas");
}
Langkah Cepat
- Rangkai tombol sesuai wiring diagram
- Hubungkan Arduino ke PC menggunakan kabel USB
- Buka Arduino IDE
- Pilih board Arduino UNO R3 dan port COM yang sesuai
- Buka Library Manager
- Cari library ezButton
- Install library ezButton
- Salin kode di atas ke Arduino IDE
- Klik tombol Upload
- Buka Serial Monitor
- Tekan dan lepaskan tombol satu per satu
Penjelasan Singkat
Fungsi berikut wajib dipanggil di dalam loop():
button.loop();
Fungsinya untuk memperbarui status tombol dan menjalankan proses debounce internal.
Fungsi yang Digunakan
1. Mengecek tombol ditekan
button.isPressed()
2. Mengecek tombol dilepas
button.isReleased()
3. Membaca status tombol
button.getState()
Arduino Multiple Button Menggunakan Array
Jika jumlah tombol semakin banyak, menulis objek satu per satu akan cukup merepotkan. Oleh karena itu, kita bisa membuat program lebih ringkas menggunakan array. Metode array sangat berguna ketika jumlah tombol banyak, semua tombol memiliki fungsi serupa serta ingin membuat kode yang lebih rapi dan scalable.
Kode Arduino — Multiple Button dengan Array
#include <ezButton.h>
#define BUTTON_NUM 5
#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define BUTTON_PIN_3 4
#define BUTTON_PIN_4 5
#define BUTTON_PIN_5 6
ezButton buttonArray[] = {
ezButton(BUTTON_PIN_1),
ezButton(BUTTON_PIN_2),
ezButton(BUTTON_PIN_3),
ezButton(BUTTON_PIN_4),
ezButton(BUTTON_PIN_5)
};
void setup() {
Serial.begin(9600);
for (byte i = 0; i < BUTTON_NUM; i++) {
buttonArray[i].setDebounceTime(100);
}
}
void loop() {
for (byte i = 0; i < BUTTON_NUM; i++) {
buttonArray[i].loop();
}
for (byte i = 0; i < BUTTON_NUM; i++) {
int button_state = buttonArray[i].getState();
/*
Serial.print("Button ");
Serial.print(i + 1);
Serial.print(": ");
Serial.println(button_state);
*/
if (buttonArray[i].isPressed()) {
Serial.print("Button ");
Serial.print(i + 1);
Serial.println(" ditekan");
}
if (buttonArray[i].isReleased()) {
Serial.print("Button ");
Serial.print(i + 1);
Serial.println(" dilepas");
}
}
}
Kenapa Menggunakan Array Lebih Baik?
Menggunakan array membuat kode lebih pendek, mudah dibaca, mudah dikembangkan dan cocok untuk project dengan banyak tombol. Misalnya ingin menambah tombol ke-6 atau ke-10, kita hanya perlu menambah pin, mengubah jumlah BUTTON_NUM tanpa harus menulis ulang banyak kode.
Baca juga: Arduino Switch ON/OFF - Cara Menggunakan Toggle Switch dengan Arduino
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: "Tutorial Arduino Multiple Button dengan Debounce"