🛠 Lire un bouton poussoir avec anti-rebond

ESP32-S2 · debutant · Schéma : IMG-esp32-s2-debutant-2-esp32-s2-bouton-anti-rebond.svg — Bouton poussoir entre le GPIO4 et le GND, résistance de pull-up interne activée par le programme sur la carte ESP32-S2.

Objectifs

Apprendre la lecture d'entrée numérique sur ESP32-S2 : activer une résistance de pull-up interne, lire l'état d'un bouton et filtrer les rebonds mécaniques par une temporisation logicielle.

Matériel

Code complet

// Bouton avec anti-rebond logiciel sur ESP32-S2
const uint8_t BTN_PIN = 4;
const uint8_t LED_PIN = 2;
const unsigned long DEBOUNCE_MS = 50;

bool etatLed = false;
bool dernierEtatBtn = HIGH;
unsigned long dernierBordMs = 0;

void setup {
  pinMode(BTN_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(115200);
}

void loop {
  bool etatBtn = digitalRead(BTN_PIN);
  unsigned long maintenant = millis;
  if (etatBtn != dernierEtatBtn &&
      maintenant - dernierBordMs >= DEBOUNCE_MS) {
    dernierBordMs = maintenant;
    dernierEtatBtn = etatBtn;
    if (etatBtn == LOW) {          // bouton enfoncé (logique inversée)
      etatLed = !etatLed;
      digitalWrite(LED_PIN, etatLed ? HIGH : LOW);
      Serial.println(etatLed ? "LED ON" : "LED OFF");
    }
  }
}

Vérification attendue

Chaque appui sur le bouton bascule la LED et affiche « LED ON » ou « LED OFF » sur le moniteur série à 115200 bauds. Un appui franc ne produit qu'un seul changement d'état.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels