Почему светодиод зависает, когда я добавляю задержку?

Я новичок в arduino и подобных вещах. Поэтому я игрался с подтягивающим резистором. Он работал нормально, но проблема возникла, когда я использовал задержку, чтобы включить светодиод на несколько секунд, прежде чем он вернется в низкое состояние. Он перестал работать, когда я нажал на переключатель несколько раз. Иногда он может работать, но в максимальное время он не работает

вот код

const int buttonPin = 4;     
const int ledPin =  12;     
int buttonState = 0;    


void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
        buttonState = digitalRead(buttonPin);
      if (buttonState == LOW) 
  {
    digitalWrite(ledPin, HIGH);
    delay(5000);
  } else 
  {
    digitalWrite(ledPin, LOW);
    delay(5000);
  }
}

, 👍1


1 ответ


Лучший ответ:

5

Ваш Arduino ничего не делает во время задержки (5000). Поэтому нажатие кнопки в течение 5000 мс, когда светодиод выключен, ничего не сделает. Или вам должно очень повезти, чтобы нажать кнопку в очень короткое время между одним циклом и следующим.

Я много узнал о синхронизации и задержках с помощью этого руководства: Мигание без задержки

,