touche-capacitive.ino

Teensy 3.2 · 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 3.2 (NXP Kinetis MK20DX256, Cortex-M4 @ 72 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

Instala el plugin Teensyduino en el Arduino IDE, elige la placa « Teensy 3.2 », pulsa Subir y luego el botón del Teensy Loader. Atención: pines de 3,3 V.

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