0
我已經問過關於閃爍的LED由按鈕控制的問題關於這個程序,但現在我想問我的程序是否能夠長按持續5秒鐘,然後它將開始閃爍循環,並且如果長按按鈕少於或超過5秒鐘。按鈕長按以控制閃爍的循環
int buttonPin = D0;
int ledPin = D1;
int held = 5;
int ledState = LOW;
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 && held == 5)
{
BLINK;
if {
A;
}
else {
B;
}
}
}
}
digitalWrite(ledPin, ledState);
lastButtonState = reading;
}
void BLINK(){
int cntr=5;
do
{
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
cntr = cntr-1;
}
while (cntr!=0);
digitalWrite(ledPin, HIGH);
delay(900000);
ledState = LOW;
}
void A(){
if (held < 5){
digitalWrite(ledPin, LOW);
}
}
void B(){
if (held > 5){
digitalWrite(ledPin, LOW);
}
}