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

Objetivos

Aprovechar la ventaja específica del ESP32-S2: 14 pines táctiles capacitivos por hardware (GPIO1 a GPIO14). Aprende a leer la capacidad con touchRead, calibrar un umbral y activar una acción al tocar con un dedo.

Material

Código completo

// 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 demarrage

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

Verificación esperada

Al iniciar, el programa calibra el umbral según el valor en reposo. El monitor serie muestra la capacidad medida; en cuanto el dedo toca la placa de cobre, el valor supera el umbral, el LED se enciende y se muestra « toque=SÍ ». Sin contacto, el LED permanece apagado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales