🛠 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.

Objetivos

Aprender la lectura de entrada digital en ESP32-S2: activar una resistencia de pull-up interna, leer el estado de un botón y filtrar los rebotes mecánicos mediante un temporizador de software.

Material

Código completo

// 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");
    }
  }
}

Verificación esperada

Cada pulsación del botón cambia el estado del LED y muestra «LED ON» o «LED OFF» en el monitor serie a 115200 baudios. Una pulsación firme produce solo un cambio de estado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales