¿Qué es un interruptor táctil?

Un sensor táctil capacitivo es un dispositivo que presenta un comportamiento similar a un pulsador, pero puede ser activado con poca o ninguna presión.

Este tipo de sensor táctil basa su funcionamiento en la medición de la variación de la capacitancia. La placa sensora y el cuerpo humano actúan como condensador y, por tanto, forman un sistema que almacena una carga electricidad.

Al reducir la distancia la capacitancia aumenta y el sistema almacena una carga superior. Esta acumulación de carga puede ser detectada en la placa sensora y generar una señal digital cuando supere un cierto valor. Esta señal de disparo puede a ser vez ser capturada con una entrada digital de Arduino.

La principal ventaja de este tipo de sensores es que no requieren de contacto físico para realizar el disparo, siendo suficiente acercar el dedo a 1-5mm del sensor. Por este motivo se les denomina dispositivos touchless.

De esta forma, es posible colocar el sensor táctil debajo de un vinilo, plástico, cartón, madera o cristal, siempre que el espesor no sea excesivo. Por contra no funcionarán debajo de materiales conductores, en particular debajo de metales.

Otra ventaja es que los sensores capacitivos es que carecen de partes móviles por lo que, en principio, tienen una durabilidad superior a la de un interruptor convencional.

Los sensores touchless son empleados a la hora de hacer interruptores eléctricos, por ejemplo, son frecuentes en baños y garajes. También pueden ser útiles, por ejemplo, para ubicar un pulsador táctil bajo un panel interactivo, de un vinilo con artes gráficas, o integrado bajo la madera de un mueble.

Esquema de montaje

El esquema eléctrico es sencillo. Alimentamos el módulo conectando GND y 5V a los pines correspondientes de Arduino.

Esquema de montaje

Finalmente, para realizar la lectura digital conectamos la salida SIG a una de las entradas digitales de Arduino.

Conexión a Arduino

Código de ejemplo

El código necesario es igualmente sencillo. Si estamos empleando la señal digital, empleamos una entrada digital para leer el estado. En el ejemplo mostramos un mensaje por la pantalla, pero en un caso real ejecutaríamos las acciones oportunas.


const int sensorPin = 9;
 
void setup()
{
   Serial.begin(9600);
   pinMode(sensorPin, INPUT);
}
 
void loop()
{
   int estado = digitalRead(sensorPin);
 
   //mandar mensaje a puerto serie en función del valor leido
   if (estado == HIGH)
   {
      Serial.println("Contacto detectado");   
      //aquí se ejecutarían las acciones
   }
   delay(1000);
}