#include #include "Btn.h" Btn::Btn(int pin, unsigned long debounce_delay) { pinMode(pin, INPUT_PULLUP); _pin = pin; _debounce_delay = debounce_delay; _last_reading = HIGH; _last_state = HIGH; _last_debounce_time = 0; } void Btn::checkState(){ int reading = digitalRead(_pin); if (reading != _last_reading) { _last_debounce_time = millis(); } if ((millis() - _last_debounce_time) > _debounce_delay) { if (reading != _state) { SerialUSB.print(_pin); SerialUSB.print(": "); SerialUSB.println(_state); _state = reading; } } _last_reading = reading; } int Btn::getState(){ this->checkState(); return _state; } int Btn::getStateOnce(){ this->checkState(); if(_state != _last_state){ _last_state = _state; return _state; }else{ return -1; } }