1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Detect the falling edge of multiple buttons.
- // Eight buttons with internal pullups.
- // Toggles a LED when any button is pressed.
- // Buttons on pins 2,3,4,5,6,7,8,9
- // Include the Bounce2 library found here :
- // https://github.com/thomasfredericks/Bounce2
- #include <Bounce2.h>
- #define LED_PIN 13
- #define NUM_BUTTONS 8
- const uint8_t BUTTON_PINS[NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9};
- int ledState = LOW;
- Bounce * buttons = new Bounce[NUM_BUTTONS];
- void setup() {
- for (int i = 0; i < NUM_BUTTONS; i++) {
- buttons[i].attach( BUTTON_PINS[i] , INPUT_PULLUP ); //setup the bounce instance for the current button
- buttons[i].interval(25); // interval in ms
- }
- // Setup the LED :
- pinMode(LED_PIN, OUTPUT);
- digitalWrite(LED_PIN, ledState);
- }
- void loop() {
- bool needToToggleLed = false;
- for (int i = 0; i < NUM_BUTTONS; i++) {
- // Update the Bounce instance :
- buttons[i].update();
- // If it fell, flag the need to toggle the LED
- if ( buttons[i].fell() ) {
- needToToggleLed = true;
- }
- }
- // if a LED toggle has been flagged :
- if ( needToToggleLed ) {
- // Toggle LED state :
- ledState = !ledState;
- digitalWrite(LED_PIN, ledState);
- }
- }
|