2016-04-29 165 views
0

我试图写一个代码为Arduino将打开LED 1秒,然后保持关闭5秒,然后再打开它1秒钟等等,我不需要使用delay()函数就可以做到这一点。Arduino打开和关闭LED,但不使用延迟

我发现下面的代码

if((currentMils - prevMils_for_2) > interval_for_2) 
    { 
    prevMils_for_2 = currentMils; 



    if(state_for_2 == LOW) 
     state_for_2 = HIGH; 
    else 
     state_for_2 = LOW; 


     digitalWrite(2, state_for_2); 
    } 

,使LED闪烁,而无需使用延迟(),但我无法弄清楚如何申请这项技术,如果开启和关闭的时间是不一样的。

回答

0

您可以更改interval_for_2值:

if((currentMils - prevMils_for_2) > interval_for_2){ 
    prevMils_for_2 = currentMils; 
    if(state_for_2 == LOW){ 
     state_for_2 = HIGH; 
     interval_for_2 = 1000;// duration for high 
    } 
    else{ 
     state_for_2 = LOW; 
     interval_for_2 = 2000;// duration for low 
    } 
    digitalWrite(2, state_for_2); 
}