В настоящее время я пытаюсь разработать простое приложение для мигания некоторого светодиода и изменения состояния в соответствии с вводом, который дает кнопка.Это означает, что у меня мигает светодиод, и всякий раз, когда я нажимаю кнопку, я хочу изменить состояние индикатора либо на постоянное включение, либо на возобновление мигания.
Это схема, которую я построил:
Вот код, который у меня сейчас есть:
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);
}
Итак, теперь мне трудно, когда я нажимаю на кнопку,не всегда обнаруживаетсяИногда он печатает в терминал, а иногда ничего не делает.Почему?