ButtonBoard provides button debouncing and recognition of common gestures such as double-press and long-press for up to five buttons. Each button can function as a switch that toggles an output pin upon detection of a gesture. The device communicates as I2C slave or via serial UART and is highly configurable. The configuration is stored in flash.
The board has an LED that can be assigned to any of the switch outputs or can be digitally controlled. An onboard button allows for easy testing. By default the onboard button and LED are both assigned to the first channel. By default each of the switch outputs is configured to toggle on one of five common gestures, so the board can be used via pin inputs/outputs out of the box (See I2C Register Defaults).
The board can be used as an I/O expander by digitally reading input pins and overriding output pins. Channels configured for button processing can take their input from either an input pin or be digitally overridden.
- 5x Button processing
- I/O expander mode (up to 5x inputs + 5x outputs)
- I2C slave (address configurable, default 0x34) and UART interfaces
- Toggle switch output for each button (switch mode configurable)
- Detects single, multiple, and long press and release events
- Interrupt output pin on event
- Buffered button events (minimum 10)
- Configurable debounce and event times
- Configured for common button gestures out-of-the-box
- Configuration stored in flash
- Onboard button
- Onboard LED (configurable)
- Up to 5x weak pull-ups, 1x strong pull-up, 1x strong pull-down
- 2.8V – 5.5V Power (VDD), I/O pins max VDD
- Fits on breadboard (with 2x single row headers)
- 1x ButtonBoard
- 2x Header strips loose
- Downloadable Arduino Demo