Проблема с проводкой кнопки NodeMCU ESP8266
Здравствуйте, ребята, это мой код, и я в основном делаю оператор if-else.
int led = D2;
int but = D1;
void setup() {
pinMode(led, OUTPUT);
pinMode(but, INPUT);
}
void loop() {
if (digitalRead(but) == HIGH){
digitalWrite(led, HIGH);
}else{
digitalWrite(led, LOW);
}
}
Я также приложил фото, чтобы вы могли диагностировать ситуацию.
Светодиодный дисплей светится только при нажатии кнопки. Но светодиод продолжает светиться дольше, и я не знаю, почему. Я думаю, что где-то в цепи есть утечка тока или внутренняя обработка работает медленно. Пожалуйста, помогите мне, ребята.
@Rorschach67, 👍1
Обсуждение1 ответ
Ваша конфигурация кнопки и подтягивания неверна, поэтому, когда кнопка не нажата, штифт D1 плавает, его не вытягивают ни в ВЫСОКОЕ, ни в НИЗКОЕ положение.
Вместо этого используйте подтягивающий резистор, как показано на рисунке. Когда кнопка не нажата, D1 подключен к GND через резистор. Когда кнопка нажата, источник 3,3 В имеет прямой путь к D1.
зачем вытягивать? проще использовать внутреннюю подтяжку, @Juraj
Потому что спрашивающий закодировал подтягивание. Да элементарно поменять., @jose can u c
- NodeMCU - Vin контакт как выход 5V?
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разве в узле MCU v3 (LoLin) нет встроенного светодиода?
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Использование датчика рН 5В с узлом 3,3В
Схема кажется неправильной. Когда кнопка нажата, она будет немного колебаться, прежде чем станет стабильной. Попробуй это: " логическое состояние = цифровое чтение (но) цифровая запись (светодиод, состояние); " также аналогичная проблема: https://arduinoprosto.ru/q/3425/unstable-reading-from-pushbutton-on-digital-pin, @Faux_Clef