The Arduino Button Library Extension (ABLE) is a simple, lightweight button library to capture input from buttons connected to the Arduino.
AbleButtons supports debouncing buttons, basic button presses, held buttons and idle buttons, button clicks, double-clicks and callback functions. AbleButtons supports managing a list of buttons together. Both pulldown and pull-up resistor circuits are supported. AbleButtons minimises its memory requirements through choosing a button class at compile time. A 'using Button = AbleButton' style command in your code includes just the features needed in your program.