使LED闪烁5秒钟并保持15分钟

时间:2014-09-30 02:41:41

标签: button timer arduino interrupt led

如果按下按钮,我希望我的程序闪烁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;
}

编辑:这是我的电路,我使用火花核心基本上它的唯一区别就是引脚。

enter image description here

0 个答案:

没有答案