I posed the following problem to my senior design class: create an arduino sketch that toggles an LED with a button push ( similar to turning on/off a TV with one button). The students quickly realized that they had to include a deboucing algorithm otherwise the boucing would result in a random on/off state. Here is my solution that is an extension of Ladyada’s “better debouncer” http://learn.adafruit.com/tilt-sensor/using-a-tilt-sensor.
/* Better Debouncer Toggle
*
* Helmut Strey 9/21/2012
*
* this sketch senses debouced edges (high-low) (low-high) and toggles at (high-low)
*
* This debouncing toggle circuit is modified from Ladyada's better debounceer that can be found below
* http://learn.adafruit.com/tilt-sensor/using-a-tilt-sensor
*
*/
int inPin = 2; // the number of the input pin
int outPin = 13; // the number of the output pin
int LEDstate = HIGH; // the current state of the output pin
int reading; // the current reading from the input pin
int previous = LOW; // the previous reading from the input pin
int switchprevious = LOW;
// the follow variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0; // the last time the output pin was toggled
long debounce = 50; // the debounce time, increase if the output flickers
void
void