#include <ezButton.h>
#include <LibPrintf.h>
#define LOOP_STATE_1_STOPPED 0
#define LOOP_STATE_1_STARTED 1
#define LOOP_STATE_2_STOPPED 0
#define LOOP_STATE_2_STARTED 1
#define ledRunning_1 2
#define ledStopped_1 4
#define ledRunning_2 0
#define ledStopped_2 1
ezButton button_1(7); // create ezButton object that attach to pin 7;
ezButton button_2(8);
int loopState_1 = LOOP_STATE_1_STOPPED;
int loopState_2 = LOOP_STATE_2_STOPPED;
void setup() {
Serial.begin(9600);
button_1.setDebounceTime(50); // set debounce time to 50 milliseconds
button_2.setDebounceTime(50);
pinMode(ledRunning_1, OUTPUT); // set LED for program running
pinMode(ledStopped_1, OUTPUT); // set LED for program stopped
pinMode(ledRunning_2, OUTPUT); // set LED for program running
pinMode(ledStopped_2, OUTPUT); // set LED for program stopped
}
void loop() {
button_1.loop(); // MUST call the loop() function first
button_2.loop();
if (button_1.isPressed()) {
if (loopState_1 == LOOP_STATE_1_STOPPED)
loopState_1 = LOOP_STATE_1_STARTED;
else // if(loopState == LOOP_STATE_STARTED)
loopState_1 = LOOP_STATE_1_STOPPED;
}
if (button_2.isPressed()) {
if (loopState_2 == LOOP_STATE_2_STOPPED)
loopState_2 = LOOP_STATE_2_STARTED;
else // if(loopState == LOOP_STATE_STARTED)
loopState_2 = LOOP_STATE_2_STOPPED;
}
if (LOOP_STATE_1_STARTED){
digitalWrite(ledRunning_1, HIGH);
digitalWrite(ledStopped_1, LOW);
} else {
digitalWrite(ledRunning_1, LOW);
digitalWrite(ledStopped_1, HIGH);
}
}