// 读取按键状态赋值到一个变量
int reading = digitalRead(buttonPin);
// 如果按键状态变化,不过是由于抖动还是按键按下造成的
// 下面的程序都需要进行这一步处理
if (reading != lastButtonState) {
// 复位去抖时间,就是把当前时间保存下来
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// 等过了去抖时间,再次去检测按键的状态
if (reading != buttonState) {
buttonState = reading;
// 如果按键仍然保持上次的状态,我们认为这个按键按下是真实有效的
// 每次按下按键需要改变当前的led状态,比如上次是熄灭,现在需要
// 点亮,反之亦然。
if (buttonState == HIGH) {
ledState = !ledState;
}
}
}arduino