为什么在按键的所有时间内都无法检测到按键?

时间:2018-10-06 14:53:33

标签: arduino

当前,我正在尝试开发一个简单的应用程序,以使某些LED闪烁并根据按钮给出的输入来更改状态。这意味着我有一个LED闪烁,每当我按下按钮时,我都希望将LED的状态更改为始终点亮或恢复闪烁。

这是我建造的电路:

Arduino Circuit

这是我现在拥有的代码:

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);

}

所以我现在遇到的困难是,当我按下按钮时,它并不总是被检测到。有时它会打印到终端,而其他时候它什么也不做。为什么?

0 个答案:

没有答案