MomentaryButton

Encapsulate Sensing Taps and Holds on A Momentary Button

This library encapsulates tracking a momentary button's pressed state, reporting whether it was tapped (pressed and released quickly) or held (closed for longer than some threshold).

Example:

// One side of the button is attached to pin 2, the other to ground.
#define PIN_BUTTON 2
#include "MomentaryButton.h"
MomentaryButton button(PIN_BUTTON);
void setup() {
  button.setup(); // set as INPUT, set HIGH
}
void loop() {
  button.check();
  if (button.wasClicked()) {
    // Respond to the button being briefly closed, then released.
  } else if (button.wasHeld()) {
    // Respond to the button being closed for longer.
  }
}

To install, add the .cpp and .h files to your project, and #include "MomentaryButton.h". (The files are not presented as an Arduino library, though a github fork to do so is welcome.)

See also: TButton

Share