How to debounce for multiple buttons?

How can I debounce for multiple buttons using millis() function in Arduino? I have trouble managing timestamps. What is the easiest way to do it?

Debouncing for the button is very important in some applications such as detecting button press, counting... Managing timestamps when debouncing for multiple buttons is not easy for newbies. Fortunately, the ezButton library supports the debouncing function. The timestamp is managed by the library. Therefore, we can use this library to debouncing for multiple buttons without managing timestamps.

Arduino Code - Debouncing for Multiple Button

The below example code is for three buttons.

/* * Created by * * This example code is in the public domain * * Tutorial page: * * This example: * + uses debounce for multiple buttons. * + reads state of multiple buttons * + detects the pressed and released events of multiple buttons */ #include <ezButton.h> ezButton button1(6); // create ezButton object that attach to pin 6; ezButton button2(7); // create ezButton object that attach to pin 7; ezButton button3(8); // create ezButton object that attach to pin 8; void setup() { Serial.begin(9600); button1.setDebounceTime(50); // set debounce time to 50 milliseconds button2.setDebounceTime(50); // set debounce time to 50 milliseconds button3.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button1.loop(); // MUST call the loop() function first button2.loop(); // MUST call the loop() function first button3.loop(); // MUST call the loop() function first if(button1.isPressed()) Serial.println("The button 1 is pressed"); if(button1.isReleased()) Serial.println("The button 1 is released"); if(button2.isPressed()) Serial.println("The button 2 is pressed"); if(button2.isReleased()) Serial.println("The button 2 is released"); if(button3.isPressed()) Serial.println("The button 3 is pressed"); if(button3.isReleased()) Serial.println("The button 3 is released"); }

The wiring diagram for above code:

Arduino Button Library Wiring Diagram

Image is developed using Fritzing. Click to enlarge image

Hardware for above code

1 × Arduino UNO Buy on Amazon
1 × USB 2.0 cable type A/B Buy on Amazon
3 × Button Buy on Amazon
1 × Breadboard Buy on Amazon
1 × Jumper Wires Buy on Amazon
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

See Also

The Best Arduino Starter Kit