-
Notifications
You must be signed in to change notification settings - Fork 0
/
debounce.ino
92 lines (72 loc) · 2.84 KB
/
debounce.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <ardukit.h>
// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
int ledState = LOW; // the current state of the output pin
adk::Button b1(buttonPin, INPUT_PULLUP);
void on_button_press(adk::EventEmitter::event &e)
{
ledState = ledState==LOW ? HIGH : LOW;
digitalWrite(ledPin, ledState);
};
// void on_button_release(adk::EventEmitter::event &e)
// {
// // turn LED off:
// digitalWrite(ledPin, LOW);
// };
void setup()
{
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
b1.enable(); // activate change detection
b1.on("press", on_button_press);
// b1.on("release", on_button_release);
}
void loop() {
adk::run();
}
// // constants won't change. They're used here to set pin numbers:
// const int buttonPin = 2; // the number of the pushbutton pin
// const int ledPin = 13; // the number of the LED pin
// // Variables will change:
// int ledState = HIGH; // the current state of the output pin
// int buttonState; // the current reading from the input pin
// int lastButtonState = LOW; // the previous reading from the input pin
// // the following variables are unsigned longs because the time, measured in
// // milliseconds, will quickly become a bigger number than can be stored in an int.
// unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
// unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
// void setup() {
// pinMode(buttonPin, INPUT);
// pinMode(ledPin, OUTPUT);
// // set initial LED state
// digitalWrite(ledPin, ledState);
// }
// void loop() {
// // read the state of the switch into a local variable:
// int reading = digitalRead(buttonPin);
// // check to see if you just pressed the button
// // (i.e. the input went from LOW to HIGH), and you've waited long enough
// // since the last press to ignore any noise:
// // If the switch changed, due to noise or pressing:
// if (reading != lastButtonState) {
// // reset the debouncing timer
// lastDebounceTime = millis();
// }
// if ((millis() - lastDebounceTime) > debounceDelay) {
// // whatever the reading is at, it's been there for longer than the debounce
// // delay, so take it as the actual current state:
// // if the button state has changed:
// if (reading != buttonState) {
// buttonState = reading;
// // only toggle the LED if the new button state is HIGH
// if (buttonState == HIGH) {
// ledState = !ledState;
// }
// }
// }
// // set the LED:
// digitalWrite(ledPin, ledState);
// // save the reading. Next time through the loop, it'll be the lastButtonState:
// lastButtonState = reading;
// }