🛠 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

Objectifs

Utiliser le bouton BOOT du ESP32-C3 comme une vraie entrée de l'application. Sur ces cartes, BOOT est relié à GPIO9, actif au niveau bas : on le lit avec une résistance de pull-up interne. Vous découvrirez le rôle de strapping de GPIO9 (maintenu enfoncé pendant un reset, il force le mode flash) et comment s'en prémunir.

Matériel

Code complet

const uint8_t BOUTON = 9;   // bouton BOOT, actif a l'état 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 état = digitalRead(BOUTON);
  if (état == LOW && etatPrecedent == HIGH &&
      millis - dernierAppui > 50) {      // anti-rebond 50 ms
    dernierAppui = millis;
    compteur++;
    Serial.printf("Appui n%u sur BOOT\n", compteur);
  }
  etatPrecedent = état;
  delay(5);
}

Vérification attendue

Chaque appui sur BOOT affiche « Appui n1 sur BOOT », « Appui n2… », etc., sans doublons grâce à l'anti-rebond. Si l'on maintient BOOT en enfonçant le reset, la carte entre en mode téléchargement (log « Download mode ») : c'est le comportement de strapping attendu, pas un bug.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels