touche-capacitive.ino
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.1 (NXP i.MX RT1062, Cortex-M7 @ 600 MHz, lógica de 3,3 V, Ethernet y almacenamiento flash adicional) 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
Teensyduino en el Arduino IDE, placa « Teensy 4.1 », Subir y botón del Teensy Loader. Pines de 3,3 V; el 4.1 añade Ethernet, USB host y pines adicionales.
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();
}
}