如果按下按钮,我希望我的程序闪烁5秒,当按钮松开时,LED将保持15分钟。 到目前为止,我已经完成了去抖动,但是当我把我的语法放在眨眼间并停留15分钟时它不起作用;当程序运行时,它不会经历闪烁循环。当按下LED保持开启时,输出就是当释放LED保持关闭时。
这是我的代码:
int buttonPin = 2;
int ledPin = 13;
int ledState = HIGH;
int buttonState;
int lastButtonState = LOW;
long lastDebounceTime = 0;
long debounceDelay = 50;
void setup()
{
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
}
void loop()
{
int reading = digitalRead(buttonPin);
if (reading != lastButtonState)
{
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay)
{
if (reading != buttonState)
{
buttonState = reading;
if (buttonState == HIGH)
{
int cntr=10;
do
{
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
cntr = cntr-1;
} while (cntr!=0);
digitalWrite(ledPin, HIGH);
delay(16000);
}
}
}
digitalWrite(ledPin, ledState);
lastButtonState = reading;
}
编辑:这是我的电路,我使用火花核心基本上它的唯一区别就是引脚。