Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Rabu, 13 Mei 2026

Tutorial Arduino Multiple Button dengan Debounce

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.  

0 on: "Tutorial Arduino Multiple Button dengan Debounce"