🛠 Lire le bouton BOOT sur GPIO9

ESP32-C3 · debutant · Schéma : IMG-esp32-c3-debutant-2-bouton-boot-gpio9.svg — Bouton BOOT du ESP32-C3 câblé entre GPIO9 et GND avec résistance de pull-up interne, compteur d'appuis en console

Objetivos

Utilizar el botón BOOT del ESP32-C3 como una entrada real de la aplicación. En estas tarjetas, BOOT está conectado a GPIO9, activo en nivel bajo: se lee con una resistencia de pull-up interna. Descubrirá el rol de strapping de GPIO9 (mantenido pulsado durante un reinicio, fuerza el modo flash) y cómo protegerse de ello.

Material

Código completo

const uint8_t BOUTON = 9;   // bouton BOOT, actif a l'etat BAS

uint8_t etatPrecedent = HIGH;
uint32_t dernierAppui = 0;
uint32_t compteur = 0;

void setup {
  Serial.begin(115200);
  pinMode(BOUTON, INPUT_PULLUP);
}

void loop {
  uint8_t etat = digitalRead(BOUTON);
  if (etat == LOW && etatPrecedent == HIGH &&
      millis - dernierAppui > 50) {      // anti-rebond 50 ms
    dernierAppui = millis;
    compteur++;
    Serial.printf("Appui n%u sur BOOT\n", compteur);
  }
  etatPrecedent = etat;
  delay(5);
}

Verificación esperada

Cada pulsación de BOOT muestra «Pulsación n1 en BOOT», «Pulsación n2…», etc., sin duplicados gracias a la antirrebote. Si se mantiene BOOT pulsado mientras se reinicia, la tarjeta entra en modo de descarga (registro «Download mode»): es el comportamiento de strapping esperado, no un error.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales