当前,我正在尝试开发一个简单的应用程序,以使某些LED闪烁并根据按钮给出的输入来更改状态。这意味着我有一个LED闪烁,每当我按下按钮时,我都希望将LED的状态更改为始终点亮或恢复闪烁。
这是我建造的电路:
这是我现在拥有的代码:
int currentState = HIGH;
int reading;
int previousState = LOW;
long time = 0; // the last time the output pin was toggled
long debounce = 200;
void setup() {
Serial.begin(9600);
for(int i = 4; i < 8; i++){
pinMode(i, OUTPUT);
}
pinMode(2, INPUT);
}
void loop() {
reading = digitalRead(2);
if (reading == HIGH && previousState == LOW && millis() - time > debounce) {
Serial.println("The button was pressed");
time = millis();
}
previousState = reading;
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
所以我现在遇到的困难是,当我按下按钮时,它并不总是被检测到。有时它会打印到终端,而其他时候它什么也不做。为什么?