2017-06-12 351 views
-3

所以我試圖讓一個LED響應按鈕。我似乎遇到的問題是如何在按鈕點擊和引導反應之間添加延遲。基本上我想,例如,點擊按鈕3次,然後2秒鐘後,將LED指示燈閃爍3次,或者如果我按住按鈕3秒鐘,則在保持的最後一秒,LED將亮起3秒鐘。我至今是:Arduino,按鈕延遲LED輸出

//Global Vars 
    // Global Variables 
    int BUTTON = 2; 
    int LED = 12; 
    unsigned long DELAY = 2000; 


    void setup() { 
     pinMode(BUTTON, INPUT); 
     pinMode(LED, OUTPUT); 
     digitalWrite(LED, LOW); 
    } 

    void loop() { 
     //Code that delays the button press 
    } 

The circuit, just so you can see what I have. Not 100% sure this is right either

我不知道我是否應該嘗試存儲該按鈕在按下數組的時間或做其他事。尋找建議/解釋,甚至可能只是一些代碼和解釋。它只是爲了好玩/學習,所以我更感興趣知道如何去做,而不僅僅是讓代碼去做。謝謝!

+1

如果你讀了我寫的,你會知道它不是作業。另外,如果我知道如何實現我描述的邏輯,我會有。正如我前面所述,即使開始描述的場景,我也陷入了困境...... – BeamerEA

+1

同意@Olaf。甚至沒有必要的僞代碼來證明你即使對此也是如此。您必須在第一個按鈕按下後啓動計時器,並在按鈕鬆開後停止計時器。如果您持續1秒作爲開始,嘗試使其點亮LED。 –

+0

只需使用倒數計時器,並在倒計時達到0時設置一箇中斷,爲led指示燈供電。 –

回答

-1

這可以通過一個簡單的if語句來解決。

if (digitalRead(BUTTON) = //however you have it set){ 
delay(DELAY); 
digitalWrite(LED, HIGH); 
} 

這將讀取按鈕線的狀態,當它匹配您希望執行延遲的狀態時,則更改LED引腳的狀態。

+0

delay()暫停循環做不到?我仍然希望能夠在點擊按鈕的時間和LED開啓的時間之間閱讀更多按鈕點擊。 – BeamerEA

+1

然後使用中斷。 –