🛠 Détecter un contact avec les broches tactiles capacitives

ESP32-S2 · intermediaire · Schéma : IMG-esp32-s2-intermediaire-2-esp32-s2-tactile-capacitif.svg — Plaque de cuivre autocollante reliée au GPIO4 de l'ESP32-S2 servant de touche tactile capacitive, LED avec résistance de 330 Ω sur GPIO2, doigt posé sur la plaque.

Objectifs

Exploiter l'atout spécifique de l'ESP32-S2 : 14 broches tactiles capacitives matérielles (GPIO1 à GPIO14). Apprendre à lire la capacité avec touchRead, calibrer un seuil et déclencher une action au contact d'un doigt.

Matériel

Code complet

// Tactile capacitif sur ESP32-S2 (GPIO1 a GPIO14 seulement)
const uint8_t TACT_PIN = 4;    // broche tactile capacitive
const uint8_t LED_PIN  = 2;
uint16_t seuil = 0;            // calibre au démarrage

void setup {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  delay(500);
  uint32_t somme = 0;
  for (int i = 0; i < 50; i++) { somme += touchRead(TACT_PIN); delay(5); }
  seuil = somme / 50 + 2000;   // valeur au repos + marge
  Serial.printf("Seuil calibre : %u\n", seuil);
}

void loop {
  uint16_t valeur = touchRead(TACT_PIN);
  bool touche = valeur > seuil;
  digitalWrite(LED_PIN, touche ? HIGH : LOW);
  static uint16_t derniere = 0;
  if (abs((int)valeur - (int)derniere) > 100) {  // limite le spam
    Serial.printf("touch=%u  touche=%s\n", valeur, touche ? "OUI" : "non");
    derniere = valeur;
  }
  delay(50);
}

Vérification attendue

Au démarrage, le programme calibre le seuil sur la valeur au repos. Le moniteur série affiche la capacité mesurée ; dès que le doigt touche la plaque de cuivre, la valeur dépasse le seuil, la LED s'allume et « touche=OUI » s'affiche. Sans contact, la LED reste éteinte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels