¿Hay alguna manera de hacer que un Arduino u otro Microcontrolador detecte un cambio en la capacitancia?
Estoy pensando en tener una pantalla en mi puerta que solo se enciende cuando tocas la manija de la puerta de metal.
¿Hay alguna manera de hacer que un Arduino u otro Microcontrolador detecte un cambio en la capacitancia?
Estoy pensando en tener una pantalla en mi puerta que solo se enciende cuando tocas la manija de la puerta de metal.
Respuestas:
Si.
La forma más simple sería usar una resistencia de alto valor (1-10M) y seguir las instrucciones en esta antigua publicación del foro de arduino: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1171076259
Aquí hay un tutorial http://www.nerdkits.com/videos/halloween_capacitive_touch_sensor/
El sensor real utilizado para detectar la presencia de una mano se explica en detalle en el video, pero aquí hay una descripción general. Nuestro sensor funciona según el mismo principio que un sensor táctil capacitivo funciona en el panel táctil de su computadora portátil. Estos sensores táctiles capacitivos funcionan bajo la premisa de que los humanos son principalmente agua. Cuando se acerca a un campo eléctrico, altera la capacitancia lo suficiente como para que el sensor lo note.
En nuestro sistema, configuramos un circuito RC con un condensador y una resistencia en paralelo. Usamos la MCU para cargar condensadores de hasta 5V (un alto voltaje digital). Luego convertimos el pin en un pin de entrada, que esencialmente desconecta ese nodo. Esto permite que el condensador se descargue a través de la resistencia. La cantidad de tiempo que tarda el condensador en descargar estará relacionada con el valor del resistor multiplicado por la capacitancia. Elegimos un valor de resistencia lo suficientemente grande como para que la constante de tiempo RC sea lo suficientemente larga para que podamos medir con la MCU. En este caso, 100K ohmios funcionaron muy bien. El sensor en este caso es dos hojas de papel de aluminio, una conectada al pin MCU y otra conectada a GND. Estas dos hojas crean un condensador que nuestra MCU está cargando y descargando. Cuando tus manos se mueven entre las dos hojas, altera el campo eléctrico, y por lo tanto la capacidad de nuestro artilugio de papel de aluminio. Por lo tanto, el condensador tarda más en descargarse, ¡y eso lo detecta el código de nuestro microcontrolador!
Una de las mejores formas en que he encontrado para medir la capacitancia es usar un circuito RC. Use un puerto de E / S digital en un microprocesador para cargar y descargar el sensor capacitivo a través de una resistencia fija. Inicie un temporizador cuando comience el ciclo de carga / descarga. Luego use un comparador para detectar cuándo el capacitor se ha cargado / descargado completamente. Detenga el temporizador cuando se dispare el comparador. El valor almacenado en el temporizador se puede usar para calcular la capacitancia del sensor.
No es una respuesta específica de Arduino, pero Microchip tiene una explicación de una forma de hacerlo en el PIC, que posiblemente funcionaría en un AVR
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en545264
La única preocupación con estos métodos es la falta de protección contra descargas estáticas
Se puede hacer un sensor táctil capacitivo sin hardware adicional. El truco consiste en habilitar el pull-up interno de un pin digital y contar los ciclos de CPU que se necesitan para tirar del pin.
Código y explicación: http://playground.arduino.cc/Code/CapacitiveSensor
Prefiero quitar la parte analógica del trabajo del microntrolador usando el condensador bajo prueba como parte de un oscilador y luego usando el controlador para medir el ancho de la pausa. Es una parte extra, pero he tenido mejores resultados de esta manera.