Почему светодиод зависает, когда я добавляю задержку?
Я новичок в 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);
}
}
@Peouse Dutta, 👍1
1 ответ
Лучший ответ:
▲ 5
Ваш Arduino ничего не делает во время задержки (5000). Поэтому нажатие кнопки в течение 5000 мс, когда светодиод выключен, ничего не сделает. Или вам должно очень повезти, чтобы нажать кнопку в очень короткое время между одним циклом и следующим.
Я много узнал о синхронизации и задержках с помощью этого руководства: Мигание без задержки
,
@ON5MF Jurgen
Смотрите также:
- Несколько условий оператора if
- Светодиоды: разница между общим анодом и общим катодом
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Управление цифровой адресной светодиодной лентой RGB 12 В с помощью Arduino
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Мигните светодиодом 5 раз с помощью цикла for