Bounce library for Arduino by Thomas Ouellet Fredericks with contributions from: Eric Lowry Jim Schimpf Tom Harkaway contact: mrtoftrash@gmail.com
Bounce is the new version of the Debounce library
1.6: Fixed for Arduino 1.0
1.5: Added risingEdge and fallingEdge
1.3: Fixed a bug that was confusing a local variable and an argument
1.2: Added a duration method
1.1: Removed a badly formated comment that would halt compiling
1.0: Initial Release
Bounce is a library for Arduino (arduino.cc). It debounces digital inputs and more.
Download here: Attach:Bounce.zip
Put the Bounce folder in "your Arduino Sketchbook Location/libraries/". To identify this location open "menubar->File->Preferences".
In the Arduino IDE, select "menubar->Sketch->Import Library->Bounce" to import the library to your sketch. An "#include Bounce.h" line will appear at the top of your Sketch.
You can also find examples under "menubar->File->Sketchbook->libraries->Bounce"
Instantiates a Debounce object for the specified pin with a debounce time.
Because Bounce does not use interrupts, you have to "update" the object before reading its value.
Updates Bounce. Returns true if the pin state changed (HIGH to LOW or LOW to HIGH). False if not.
Changes the debounce time in milliseconds.
Reads the updated pin state.
Sets the stored pin state
Forces the pin to signal a state change in X milliseconds even if the state does not actually change. Example: A button that repeats every X milliseconds as long as it is held down
Returns the number of milliseconds the pin has been in the current state.
// The risingEdge method is true for one scan after the de-bounced input goes from off-to-on.
The fallingEdge method it true for one scan after the de-bounced input goes from on-to-off.
// This code turns a led on/off through a debounced switch
#include <Bounce.h>
// This code turns a led on/off through a debounced button
// Build the circuit indicated here: http://arduino.cc/en/Tutorial/Button
#define BUTTON 2
#define LED 13
// Instantiate a Bounce object with a 5 millisecond debounce time
Bounce bouncer = Bounce( BUTTON,5 );
void setup() {
pinMode(BUTTON,INPUT);
pinMode(LED,OUTPUT);
}
void loop() {
// Update the debouncer
bouncer.update ( );
// Get the update value and turn on or off the LED
digitalWrite(LED, bouncer.read());
}