touche-capacitive.ino

Teensy 4.0 · Archivo : touche-capacitive.ino · Lenguaje : Arduino · Uso : Détecter un doigt sur une broche grâce à touchRead (spécifique Teensy)

touchRead() es la función estrella de Teensy: mide la capacidad de un pin y detecta un dedo sobre un simple cable, sin circuitos 555 ni placas capacitivas dedicadas. Ideal para interfaces táctiles improvisadas.

Hardware

Un Teensy 4.0 (NXP i.MX RT1062, Cortex-M7 @ 600 MHz, lógica de 3,3 V) alimentado por USB. Un cable eléctrico pelado (10-20 cm) o una pequeña placa metálica en el pin 0; LED en 13.

Cableado

Cable sensor en el pin 0 (a nada más), LED + 330 Ω en 13 hacia GND (3,3 V).

Funcionamiento

touchRead() devuelve cerca de cero sin contacto y varios cientos con un dedo. La histéresis la dan el umbral y el estado memorizado.

Ejecución

Con Teensyduino en el Arduino IDE, elige « Teensy 4.0 », Subir y confirma en el Teensy Loader. Los pines son de 3,3 V; el 4.0 es compatible en pines con el 3.2.

Variantes

Varios pines como sensores (una matriz de valores) para un teclado numérico capacitivo, o generar sonido con la librería Audio.

touche-capacitive.ino

// touchRead() : la broche devient un capteur capacitif sans circuit.
// Fonctionne sur une grande partie des broches Teensy (voir doc).
const int TOUCHE = 0;   // broche capteur (fil nu ou plaque metallique)
const int LED = 13;
const int SEUIL = 500;  // a calibrer avec la sortie serie

unsigned long derniereMesure = 0;
bool touche = false;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (millis() - derniereMesure >= 50) {
    derniereMesure = millis();
    int valeur = touchRead(TOUCHE); // sans contact ~0, doigt ~500-1000

    Serial.print(F("touch = "));
    Serial.print(valeur);
    if (valeur > SEUIL && !touche) {
      touche = true;
      digitalWrite(LED, HIGH);
      Serial.print(F("  -> TOUCHE"));
    } else if (valeur < SEUIL && touche) {
      touche = false;
      digitalWrite(LED, LOW);
    }
    Serial.println();
  }
}

← Volver a la ficha