2015-06-04 76 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