Проблема с проводкой кнопки 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);
  }


}

Я также приложил фото, чтобы вы могли диагностировать ситуацию.

Светодиодный дисплей светится только при нажатии кнопки. Но светодиод продолжает светиться дольше, и я не знаю, почему. Я думаю, что где-то в цепи есть утечка тока или внутренняя обработка работает медленно. Пожалуйста, помогите мне, ребята.

, 👍1

Обсуждение

Схема кажется неправильной. Когда кнопка нажата, она будет немного колебаться, прежде чем станет стабильной. Попробуй это: " логическое состояние = цифровое чтение (но) цифровая запись (светодиод, состояние); " также аналогичная проблема: https://arduinoprosto.ru/q/3425/unstable-reading-from-pushbutton-on-digital-pin, @Faux_Clef


1 ответ


2

Ваша конфигурация кнопки и подтягивания неверна, поэтому, когда кнопка не нажата, штифт D1 плавает, его не вытягивают ни в ВЫСОКОЕ, ни в НИЗКОЕ положение.

Вместо этого используйте подтягивающий резистор, как показано на рисунке. Когда кнопка не нажата, D1 подключен к GND через резистор. Когда кнопка нажата, источник 3,3 В имеет прямой путь к D1.

схема

,

зачем вытягивать? проще использовать внутреннюю подтяжку, @Juraj

Потому что спрашивающий закодировал подтягивание. Да элементарно поменять., @jose can u c