// 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 #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); } }