63 read_ = digitalRead(pin_);
65 bool debounced = (millis() - last_press_) > DEBOUNCE_MS;
66 bool pressed = read_ == 0 && old_read_ == 1 && debounced;
67 bool released = read_ == 1 && old_read_ == 0 && debounced;
69 last_press_ = (pressed || released) ? millis(): last_press_;
72 change_ = CHANGE_UNCHANGED;
74 change_ = CHANGE_PRESSED;
76 }
else if (released) {
77 change_ = CHANGE_RELEASED;
80 #ifdef LED_PIN_DEFINED
82 digitalWrite(led_pin_, on_);