#include "onePulsePin.h"  // The non-blocking one shot pulse out class.
#include <mechButton.h>   // Button debouncing library.

#define PULSE_PIN 2                   // The thing will be run on pin #2
#define THING_PIN 3                   // The button for the thing will be on pin #3

onePulsePin thing(PULSE_PIN);         // Create the thing object. (The pin that pulses)  
mechButton  thingButton(THING_PIN);   // Create the button object. (The button you push.)  

void setup() {

  thingButton.setCallback(doThing); // Tell button to to call this finction when changed.

// When there's a change on the button, this function will be called.
void doThing(void) {

  if (!thingButton.trueFalse()) { // If the button has been grounded..
    thing.pulse(1000,HIGH);       // Do a HIGH pulse to the thing for this amount of ms.

void loop() {
  idle();      // idle() lets all the magic happen behind the scenes.