Detección capacitiva

10

¿Hay alguna manera de hacer que un Arduino u otro microcontrolador detecten 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.

    
pregunta littlebirdceo

6 respuestas

9

Sí.

La forma más sencilla sería utilizar un resistor de alto valor (1-10M) y seguir las instrucciones en esta antigua publicación del foro de arduino: enlace

    
respondido por el Andrew S. Parnell
11

Aquí hay un tutorial enlace

  

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 con el mismo principio de que un sensor táctil capacitivo funciona en el panel táctil de su computadora portátil. Estos sensores táctiles capacitivos funcionan con la premisa de que los humanos son en su mayoría agua. Cuando te acercas a un campo eléctrico, alteras 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. Utilizamos la MCU para cargar un condensador de hasta 5 V (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 capacitor en descargarse estará relacionada con el valor de la resistencia multiplicado por la capacitancia. Escogemos un valor de resistencia lo suficientemente grande como para que la constante de tiempo RC sea lo suficientemente larga para que podamos medirla con la MCU. En este caso 100K ohms funcionó muy bien. El sensor en este caso es de 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 sus 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 es detectado por el código en nuestro microcontrolador!

    
respondido por el Pete
6

Una de las mejores formas que he encontrado para medir la capacitancia es usar un circuito RC. Utilice 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. Detener el temporizador cuando el comparador dispara. El valor almacenado en el temporizador se puede utilizar para calcular la capacidad del sensor.

    
respondido por el mjh2007
4

No es una respuesta específica de Arduino, pero Microchip tiene una explicación de una forma de hacerlo en el PIC, que posiblemente funcione en un AVR

enlace

La única preocupación con estos métodos es la falta de protección contra descargas estáticas

    
respondido por el Kean
1

Se puede hacer un sensor táctil capacitivo sin hardware adicional. El truco es habilitar la recuperación interna de un pin digital y contar los ciclos de CPU necesarios para levantar el pin.

Código y explicación: enlace

    
respondido por el maxy
0

Prefiero quitar la parte analógica del trabajo del microcontrolador utilizando el condensador bajo prueba como parte de un oscilador y luego usar el controlador para medir el ancho del puse. Es una parte adicional, pero he tenido mejores resultados de esta manera.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas