Sensor de Toque (Pulsador)

Este sensor consiste en un simple contacto eléctrico que se cierra al apretar un botón. El botón puede tener distintas formas y tamaños, como los mostrados en la figura, conocidos también como pulsadores. Para este tipo de sensor también pueden usarse los micro-switches, que pueden o no tener una extensión metálica. Y también podrían usarse los "tact switches" que tienen una membrana metálica que hace contacto, como el usado en el botón de reset de una placa Arduino. También podrían usarse llaves conmutadoras de dos posiciones.

Todos los casos mencionados anteriormente cierran eléctricamente un contacto. Pero hay otras alternativas para un sensor de tacto, por ejemplo existen "touch switches" que funcionan de manera capacitiva o resistiva al acercar la mano, o hasta usar un sensor de rebote infrarrojo como sensor de tacto acercándole un objeto cualquiera, en cuyo caso podría no haber un contacto físico real con el sensor.

DISEÑO

Todos los sensores que actúan como DI (Digital Input) deben entregar un nivel lógico TTL, deben tener en su salida o bien 0 Volt o bien 5 Volt (o al menos un valor cercano a ese), ver la siguiente tabla (en FreeSensors todos los sensores trabajan con un voltaje fijo nominal de +5V).

Input Low Voltage: Si Vcc está entre 2.4V - 5.5V MIN = -0.5 V MAX = 0.3 * Vcc = 1.5 V

Input High Voltage: Si Vcc está entre 2.4V - 5.5V MIN = 0.6 * Vcc = 3 V MAX = Vcc + 0.5 = 5.5 V

Para poder entregar una tensión, los sensores DI debe estar alimentados y por lo tanto requieren 3 hilos y 3 contactos en el conector modular 6P4C. En el caso del 0 lógico no se haría sink de corriente, sino que simplemente hay un pull-down a masa, y en el caso del 1 lógico habría una source de corriente limitada por el resistor de 1 Kohm (max. 5 mA), mas que suficiente para una entrada digital.

La otra posibilidad (no compatible con FreeSensors y con la lógica positiva) es trabajar solo con dos hilos: Se podría traer en uno de ellos una tensión de +5V o masa, y el sensor simplemente cierra contacto contra el otro hilo de señal. En FreeSensors el hilo de señal es siempre el pin4, si se trajera +5V no se podría traer por el pin3 (que siempre es masa), y por tanto no se podrían usar conectores 6P2C en forma intercambiable con los cables, plugs y jacks del sistema. Si se eligiera el otro camino, de respetar el pin3 como masa y el pin4 como señal, debiera venir por la señal un 1 lógico desde el µControlador (con un pull-up), y el switch haría contacto de esa señal con masa. Esto implicaría desde el lado del software no olvidarse de poner el pull-up, y recordar al leer el puerto DI que la lógica es negativa. Sin embargo, se ve como conveniente trabajar siempre con lógica positiva, para compatibilizar las placas shields entre si, y para trabajar con distintos µControladores diferentes al Arduino (donde no necesariamente tenemos pull-ups por software y habría que implementar pull-ups por hardware).

El otro tema considerado en este sensor fue el de eliminar el rebote del contacto. Como ya se colocó una resistencia limitante, sería sencillo agregar un capacitor para lograr un filtro pasa bajos como el mostrado en la figura. Con una resistencia de 1 Kohm y un capacitor de 100 nF la frecuencia de corte es de 1.6 KHz, o bien 0.63 mseg. Estos valores solo filtran frecuencias relativamente muy altas para un switch (ruido del contacto), pero no el rebote mecánico. Quizás debieran cambiarse esos valores para lograr un filtrado de rebotes mas efectivo. Sin embargo, en los ejemplos relevados, normalmente siempre se prefiere hacer la eliminación de rebote por software y no por hardware, por lo que se concluye que la colocación del capacitor no es necesaria.

CIRCUITO

MÓDULO

En la primer figura se muestra el prototipo de pruebas sobre placa de protoboard que coincide con el diseño en Fritzing.

Luego se muestra la construcción del módulo sensor digital (en color gris) usando bloques plásticos Rasti:

PROGRAMA

Prueba sensor

RECURSOS