Recientemente he estado experimentando con la detección de toque en un pin de entrada digital del microcontrolador usando el siguiente método:
- Poner el pin en modo de salida
- Conduce el pin alto
- Ponga el pin en modo de entrada
- el tiempo que tarda el pin en cambiar de estado por el ruido eléctrico.
- Filtra el valor y busca grandes aumentos o disminuciones en el tiempo (presumiblemente esto es cuando el usuario toca el pin).
En pruebas breves, este tiempo que toma cambiar el estado del pin es varios miles de veces más corto cuando una persona toca el pin. Con una pequeña aplicación de demostración que alterna un LED, en un entorno residencial relativamente silencioso, funciona de manera confiable.
Así que ahora estoy intentando entender qué es el sistema y cómo funciona. Creo que el sistema es: Cuando el humano toca el pin, actúa como una antena, aumentando el ruido eléctrico que entra en el pin y reduciendo el tiempo que tarda el capacitor parásito en cambiar de estado.
También creo que el voltaje en el pin seguirá el movimiento browniano y serpenteará de un estado a otro (esto se debe a que el capacitor está integrando el ruido eléctrico blanco). Sin embargo, sin un osciloscopio no he podido ver realmente lo que está haciendo el voltaje del pin.
Mis preguntas son:
- ¿Mi entendimiento del sistema es correcto?
- ¿Cuáles son las desventajas y limitaciones del sistema?
Algunas limitaciones que puedo ver:
- Susceptible a picos en el ruido ambiental (por ejemplo, encender un microondas).
- La electricidad estática que se produce al tocar el pin puede dañar el microcontrolador (¿es posible que la mano esté conectada al circuito a través del recinto?)