2016-04-29 161 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); 
}