#define LED 13
#define BTN 12
class ClickButton {
private:
bool state = HIGH;
uint8_t btnPin;
bool lastBtnState;
bool currBtnState;
public:
ClickButton(uint8_t pin) {
btnPin = pin;
}
void init() {
pinMode(btnPin, INPUT_PULLUP);
currBtnState = digitalRead(btnPin);
}
bool isPressed() {
lastBtnState = currBtnState;
currBtnState = digitalRead(btnPin);
delay(5);
return lastBtnState == HIGH && currBtnState == LOW;
}
};
ClickButton btn = ClickButton(BTN);
void setup() {
pinMode(LED, OUTPUT);
btn.init();
}
bool state = LOW;
void loop() {
if(btn.isPressed())
state = !state;
digitalWrite(LED, state);
}