🛠 Lire un bouton sur GPIO4 avec l'ESP8266-ESP-12E

ESP8266 (módulo ESP-12E) · debutant · Schéma : IMG-esp8266-esp-12e-debutant-2-esp8266-bouton-gpio4.svg — Module ESP8266-ESP-12E, bouton poussoir entre GPIO4 et la masse, résistance de pull-up interne activée, console UART0 sur GPIO1/GPIO3.

Objetivos

Aprender a leer una entrada digital en el ESP8266-ESP-12E utilizando un botón pulsador conectado al GPIO4 (pin D2 en las placas NodeMCU). El GPIO4 forma parte de los pines «seguros» del módulo, junto con el GPIO5: no tienen ninguna restricción durante el arranque, a diferencia del GPIO0, GPIO2 y GPIO15. Activamos la resistencia de pull-up interna (aproximadamente 45 kΩ) con INPUT_PULLUP, lo que evita añadir una resistencia externa: el botón conecta el pin a masa cuando se pulsa, y la entrada lee entonces LOW. Mostramos las pulsaciones en la consola serie UART0 a 115200 baudios, y descubrimos el papel de yield para alimentar al watchdog de software.

Material

Código completo

// Bouton sur GPIO4 (D2), LED sur GPIO2 (D4, active-LOW sur la plupart des modules)
const uint8_t BTN = 4;
const uint8_t LED = 2;

void setup {
  pinMode(BTN, INPUT_PULLUP);   // pull-up interne ~45 kΩ, pas de résistance externe
  pinMode(LED, OUTPUT);
  Serial.begin(115200);         // console sur UART0 : GPIO1 TX / GPIO3 RX
  Serial.println("Pret : appuyez sur le bouton GPIO4");
}

void loop {
  static uint8_t last = HIGH;
  uint8_t now = digitalRead(BTN);
  if (now != last) {                 // anti-rebond logiciel simple
    delay(30);
    now = digitalRead(BTN);
    if (now != last) {
      last = now;
      Serial.println(last == LOW ? "Bouton APPUYE" : "Bouton lache");
    }
  }
  digitalWrite(LED, last);           // LED embarquée s'allume quand on appuie (active-LOW)
  yield;                           // nourrit le watchdog logiciel (WDT)
}

Verificación esperada

Abre el monitor serie a 115200 baudios y reinicia el módulo: se mostrará el mensaje de bienvenida. En cada pulsación, la consola muestra «Botón PULSADO» y el LED se enciende; en cada liberación, «Botón liberado» y el LED se apaga. No debe producirse ningún reinicio inesperado: si ocurriera, sospecha de una alimentación insuficiente más que del código.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales