Changed duration() to currentDuration() and added examples
This commit is contained in:
@@ -36,9 +36,9 @@ void setup() {
|
||||
|
||||
// SELECT ONE OF THE FOLLOWING :
|
||||
// 1) IF YOUR INPUT HAS AN INTERNAL PULL-UP
|
||||
// bounce.attach( BOUNCE_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
|
||||
bounce.attach( BOUNCE_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
|
||||
// 2) IF YOUR INPUT USES AN EXTERNAL PULL-UP
|
||||
bounce.attach( BOUNCE_PIN, INPUT ); // USE EXTERNAL PULL-UP
|
||||
//bounce.attach( BOUNCE_PIN, INPUT ); // USE EXTERNAL PULL-UP
|
||||
|
||||
// DEBOUNCE INTERVAL IN MILLISECONDS
|
||||
bounce.interval(5); // interval in ms
|
||||
|
||||
@@ -66,6 +66,7 @@ void loop() {
|
||||
|
||||
// <Button>.pressed() RETURNS true IF THE STATE CHANGED
|
||||
// AND THE CURRENT STATE MATCHES <Button>.setPressedState(<HIGH or LOW>);
|
||||
// WHICH IS LOW IN THIS EXAMPLE AS SET WITH button.setPressedState(LOW); IN setup()
|
||||
if ( button.pressed() ) {
|
||||
|
||||
// TOGGLE THE LED STATE :
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
====================
|
||||
Simple example of the Bounce library that switches on a LED when
|
||||
the decounced input is held for more than 1000 milliseconds.
|
||||
|
||||
Set BOUNCE_PIN to the pin attached to the input (a button for example).
|
||||
Set LED_PIN to the pin attached to a LED.
|
||||
|
||||
*/
|
||||
|
||||
// WE WILL attach() THE Bounce INSTANCE TO THE FOLLOWING PIN IN setup()
|
||||
#define BOUNCE_PIN 2
|
||||
|
||||
// DEFINE THE PIN FOR THE LED :
|
||||
// 1) SOME BOARDS HAVE A DEFAULT LED (LED_BUILTIN)
|
||||
#define LED_PIN LED_BUILTIN
|
||||
// 2) OTHERWISE SET YOUR OWN PIN
|
||||
// #define LED_PIN 13
|
||||
|
||||
// Include the Bounce2 library found here :
|
||||
// https://github.com/thomasfredericks/Bounce2
|
||||
#include <Bounce2.h>
|
||||
|
||||
|
||||
// INSTANTIATE A Bounce OBJECT.
|
||||
Bounce bounce = Bounce();
|
||||
|
||||
// SET A VARIABLE TO STORE THE LED STATE
|
||||
int ledState = LOW;
|
||||
|
||||
void setup() {
|
||||
|
||||
// BOUNCE SETUP
|
||||
|
||||
// SELECT ONE OF THE FOLLOWING :
|
||||
// 1) IF YOUR INPUT HAS AN INTERNAL PULL-UP
|
||||
bounce.attach( BOUNCE_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
|
||||
// 2) IF YOUR INPUT USES AN EXTERNAL PULL-UP
|
||||
//bounce.attach( BOUNCE_PIN, INPUT ); // USE EXTERNAL PULL-UP
|
||||
|
||||
// DEBOUNCE INTERVAL IN MILLISECONDS
|
||||
bounce.interval(5); // interval in ms
|
||||
|
||||
// LED SETUP
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
digitalWrite(LED_PIN, ledState);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Update the Bounce instance (YOU MUST DO THIS EVERY LOOP)
|
||||
bounce.update();
|
||||
|
||||
// GET THE STATE WITH <Bounce.read()>
|
||||
int debouncedState = bounce.read();
|
||||
|
||||
// <Bounce>.duration() RETURNS THE TIME IN MILLISECONDS THE CURRENT STATE HAS BEEN HELD.
|
||||
// SO WE CHECK IF THE STATE IS LOW AND IF IT HAS BEEN LOW FOR MORE THAN 1 SECOND.
|
||||
if ( debouncedState == LOW && bounce.currentDuration() > 1000 ) {
|
||||
digitalWrite(LED_PIN,HIGH); // TURN THE LED ON
|
||||
} else {
|
||||
digitalWrite(LED_PIN,LOW); // TURN THE LED OFF
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
====================
|
||||
When the debounced input goes from LOW to HIGH, the LED will turn on for the same time
|
||||
the debounced input was held LOW.
|
||||
|
||||
Set BOUNCE_PIN to the pin attached to the input (a button for example).
|
||||
Set LED_PIN to the pin attached to a LED.
|
||||
|
||||
*/
|
||||
|
||||
// WE WILL attach() THE Bounce INSTANCE TO THE FOLLOWING PIN IN setup()
|
||||
#define BOUNCE_PIN 2
|
||||
|
||||
// DEFINE THE PIN FOR THE LED :
|
||||
// 1) SOME BOARDS HAVE A DEFAULT LED (LED_BUILTIN)
|
||||
#define LED_PIN LED_BUILTIN
|
||||
// 2) OTHERWISE SET YOUR OWN PIN
|
||||
// #define LED_PIN 13
|
||||
|
||||
// Include the Bounce2 library found here :
|
||||
// https://github.com/thomasfredericks/Bounce2
|
||||
#include <Bounce2.h>
|
||||
|
||||
|
||||
// INSTANTIATE A Bounce OBJECT.
|
||||
Bounce bounce = Bounce();
|
||||
|
||||
// SET A VARIABLE TO STORE THE INTERVAL FOR HOW LONG TO KEEP THE LED HIGH
|
||||
unsigned long ledHighInterval;
|
||||
|
||||
// SET A VARIABLE TO STORE THE START TIME WHEN THE LED WAS TURNED HIGH
|
||||
unsigned long ledHighLastTime;
|
||||
|
||||
void setup() {
|
||||
|
||||
// BOUNCE SETUP
|
||||
|
||||
// SELECT ONE OF THE FOLLOWING :
|
||||
// 1) IF YOUR INPUT HAS AN INTERNAL PULL-UP
|
||||
bounce.attach( BOUNCE_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
|
||||
// 2) IF YOUR INPUT USES AN EXTERNAL PULL-UP
|
||||
//bounce.attach( BOUNCE_PIN, INPUT ); // USE EXTERNAL PULL-UP
|
||||
|
||||
// DEBOUNCE INTERVAL IN MILLISECONDS
|
||||
bounce.interval(5); // interval in ms
|
||||
|
||||
// LED SETUP
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Update the Bounce instance (YOU MUST DO THIS EVERY LOOP)
|
||||
bounce.update();
|
||||
|
||||
// <Bounce>.rose() RETURNS true IF THE STATE JUST WENT FROM LOW TO HIGH
|
||||
if ( bounce.rose() ) {
|
||||
digitalWrite(LED_PIN, HIGH); // TURN ON THE LED
|
||||
ledHighLastTime = millis();
|
||||
ledHighInterval = bounce.previousDuration();
|
||||
}
|
||||
|
||||
// IF WE HAVE TO BLINK THE LED
|
||||
if ( millis() - ledHighLastTime > ledHighInterval ) {
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
} else {
|
||||
digitalWrite(LED_PIN, HIGH);
|
||||
}
|
||||
|
||||
}
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
====================
|
||||
Simple example of the Bounce library that switches the state of a LED
|
||||
when the debounced input goes from LOW to HIGH.
|
||||
|
||||
Also if the debounced input was previously held LOW for more than 1000 milliseconds,
|
||||
the LED will blink.
|
||||
|
||||
Set BOUNCE_PIN to the pin attached to the input (a button for example).
|
||||
Set LED_PIN to the pin attached to a LED.
|
||||
|
||||
*/
|
||||
|
||||
// WE WILL attach() THE Bounce INSTANCE TO THE FOLLOWING PIN IN setup()
|
||||
#define BOUNCE_PIN 2
|
||||
|
||||
// DEFINE THE PIN FOR THE LED :
|
||||
// 1) SOME BOARDS HAVE A DEFAULT LED (LED_BUILTIN)
|
||||
#define LED_PIN LED_BUILTIN
|
||||
// 2) OTHERWISE SET YOUR OWN PIN
|
||||
// #define LED_PIN 13
|
||||
|
||||
// Include the Bounce2 library found here :
|
||||
// https://github.com/thomasfredericks/Bounce2
|
||||
#include <Bounce2.h>
|
||||
|
||||
|
||||
// INSTANTIATE A Bounce OBJECT.
|
||||
Bounce bounce = Bounce();
|
||||
|
||||
// SET A VARIABLE TO STORE THE LED STATE
|
||||
int ledState = LOW;
|
||||
|
||||
// SET A VARIABLE TO STORE THE BLINKING STATE
|
||||
bool blinkLed = false;
|
||||
// SET A VARIABLE TO STORE THE LAST TIME THE LED BLINKED
|
||||
unsigned long blinkLedLastTime;
|
||||
|
||||
void setup() {
|
||||
|
||||
// BOUNCE SETUP
|
||||
|
||||
// SELECT ONE OF THE FOLLOWING :
|
||||
// 1) IF YOUR INPUT HAS AN INTERNAL PULL-UP
|
||||
bounce.attach( BOUNCE_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
|
||||
// 2) IF YOUR INPUT USES AN EXTERNAL PULL-UP
|
||||
//bounce.attach( BOUNCE_PIN, INPUT ); // USE EXTERNAL PULL-UP
|
||||
|
||||
// DEBOUNCE INTERVAL IN MILLISECONDS
|
||||
bounce.interval(5); // interval in ms
|
||||
|
||||
// LED SETUP
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
digitalWrite(LED_PIN, ledState);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Update the Bounce instance (YOU MUST DO THIS EVERY LOOP)
|
||||
bounce.update();
|
||||
|
||||
// <Bounce>.changed() RETURNS true IF THE STATE CHANGED (FROM HIGH TO LOW OR LOW TO HIGH)
|
||||
if ( bounce.changed() ) {
|
||||
// THE STATE OF THE INPUT CHANGED
|
||||
// GET THE STATE
|
||||
int deboucedInput = bounce.read();
|
||||
// IF THE CHANGED VALUE IS HIGH
|
||||
if ( deboucedInput == HIGH ) {
|
||||
ledState = !ledState; // SET ledState TO THE OPPOSITE OF ledState
|
||||
digitalWrite(LED_PIN,ledState); // WRITE THE NEW ledState
|
||||
// IF THE DURATION OF THE PREVIOUS STATE (LOW IN THIS CASE) WAS HELD LONGER THAN 1000 MILLISECONDS:
|
||||
if ( bounce.previousDuration() > 1000 ) blinkLed = true;
|
||||
else blinkLed = false;
|
||||
}
|
||||
}
|
||||
|
||||
// IF WE HAVE TO BLINK THE LED
|
||||
if ( blinkLed ) {
|
||||
if ( millis() - blinkLedLastTime > 500 ) {
|
||||
blinkLedLastTime = millis();
|
||||
ledState = !ledState; // SET ledState TO THE OPPOSITE OF ledState
|
||||
digitalWrite(LED_PIN,ledState); // WRITE THE NEW ledState
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
DESCRIPTION
|
||||
====================
|
||||
Reports through serial (57600 baud) the time since
|
||||
a button press (transition from HIGH to LOW).
|
||||
|
||||
*/
|
||||
|
||||
// Include the Bounce2 library found here :
|
||||
// https://github.com/thomasfredericks/Bounce2
|
||||
#include <Bounce2.h>
|
||||
|
||||
|
||||
#define BUTTON_PIN 2
|
||||
#define LED_PIN 13
|
||||
|
||||
// Instantiate a Bounce object :
|
||||
Bounce debouncer = Bounce();
|
||||
|
||||
unsigned long buttonPressTimeStamp;
|
||||
|
||||
void setup() {
|
||||
|
||||
Serial.begin(57600);
|
||||
|
||||
// Setup the button with an internal pull-up :
|
||||
pinMode(BUTTON_PIN,INPUT_PULLUP);
|
||||
|
||||
// After setting up the button, setup the Bounce instance :
|
||||
debouncer.attach(BUTTON_PIN);
|
||||
debouncer.interval(5);
|
||||
|
||||
// Setup the LED :
|
||||
pinMode(LED_PIN,OUTPUT);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
// Update the Bounce instance :
|
||||
debouncer.update();
|
||||
|
||||
// Call code if Bounce fell (transition from HIGH to LOW) :
|
||||
if ( debouncer.fell() ) {;
|
||||
|
||||
Serial.println( millis()-buttonPressTimeStamp );
|
||||
buttonPressTimeStamp = millis();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ duration KEYWORD2
|
||||
pressed KEYWORD2
|
||||
released KEYWORD2
|
||||
setPressedState KEYWORD2
|
||||
currentDuration KEYWORD2
|
||||
previousDuration KEYWORD2
|
||||
|
||||
#######################################
|
||||
# Instances (KEYWORD2)
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/thomasfredericks/Bounce2.git"
|
||||
},
|
||||
"version": "2.60",
|
||||
"version": "2.70",
|
||||
"exclude": [
|
||||
"*.png",
|
||||
"*.zip"
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
name=Bounce2
|
||||
version=2.60
|
||||
version=2.70
|
||||
author=Thomas O Fredericks <tof@t-o-f.info> with contributions from Eric Lowry, Jim Schimpf, Tom Harkaway, Joachim Krüger and MrGradgrind.
|
||||
maintainer=Thomas O Fredericks <tof@t-o-f.info>
|
||||
sentence=Debouncing library for Arduino and Wiring.
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ unsigned long Debouncer::previousDuration() const {
|
||||
return durationOfPreviousState;
|
||||
}
|
||||
|
||||
unsigned long Debouncer::duration() const {
|
||||
unsigned long Debouncer::currentDuration() const {
|
||||
return (millis() - stateChangeLastTime);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -137,7 +137,8 @@ public:
|
||||
@return The duration in milliseconds (unsigned long) of the current state.
|
||||
*/
|
||||
|
||||
unsigned long duration() const;
|
||||
unsigned long currentDuration() const;
|
||||
|
||||
|
||||
/**
|
||||
@brief Returns the duration in milliseconds of the previous state.
|
||||
|
||||
Reference in New Issue
Block a user