2015-06-04 77 views
1
#include <PS2Keyboard.h> 


const int buttonPin = 4; 

int buttonState = 0; 


void setup() { 

    pinMode (buttonPin, OUTPUT); 
    Serial.begin(9600); 

} 

void loop() { 



buttonState = digitalRead(buttonPin); 
if (buttonState == HIGH) { 
    Serial.print("\t"); 
    Serial.println("In"); 

} 

} 

我只是想要它打印在,但它不斷重複許多次。Arduino項目 - 打印

也許我按了更長的按鈕,但我希​​望循環運行一次。

+0

存儲在循環中,並且在您的情況之外。循環中的一切是......循環播放你可以使用一個變量,說明你的按鈕高是承認作爲一個debouncer工作。 – Elric

回答

0

我給你的建議是在Serial.print("Storage");後延遲添加到您的代碼,像這樣:

buttonState = digitalRead(buttonPin); 
    if (buttonState == HIGH) { 
    Serial.print("\t"); 
    Serial.println("Storage"); 
    delay(500); 
    } 
} 

我懷疑正在發生的事情是,即使你迅速按下按鈕,虛空循環變通過很多次。爲了解決這個問題,你需要添加一個你需要的時間量的延遲,這樣如果你按下按鈕,在代碼開始循環之前你有時間放手。

+0

這種方法對我來說工作得很好!謝謝oakTree aka Groot! – blackknight316