Es probable que esté utilizando capacitancia parásita . En el caso de la placa táctil, utiliza un chip dedicado (controlador de sensor táctil capacitivo de proximidad) denominado MPR121 por NXP (que fue Freescale (que fue Motorola)). El uso de un chip dedicado probablemente dará como resultado un funcionamiento más confiable que el uso de las funciones integradas de interruptor táctil de algunos microprocesadores integrados.
Algunos de los ATmega328P (el procesador utilizado en un Arduino Uno ) contiene un pequeño circuito centrado alrededor de un condensador. El software se utiliza para cargar y descargar el condensador. El tiempo para hacer esto está registrado. Si agrega capacitancia parásita (por ejemplo, toque el pin del microprocesador incorporado con el dedo), cambie la capacitancia general lo suficiente como para marcar la diferencia en el ciclo de carga / descarga. El software puede reaccionar como usted (el programador) considere oportuno.
Este tipo de sensor es difícil de decodificar de manera confiable. Por ejemplo, si llevas guantes, el efecto se reduce. Esta es una de las razones por las que no ve este tipo de sensor a menudo en aplicaciones al aire libre.
Ocasionalmente, se utiliza software más complejo para combatir los eventos de toque falso. Además, los sensores adicionales, como los sensores de proximidad ópticos, se utilizan para validar o incluso invalidar eventos táctiles. Por ejemplo, cuando sostiene un teléfono de pantalla táctil capacitiva en su cara, el teléfono invalida todos los eventos táctiles. Por lo general, debido a un sensor de proximidad óptico en la parte frontal del teléfono.
Alguien ha escrito una Biblioteca de detección capacitiva para el Arduino. Puede obtenerlo en aquí .
Puede encontrar una solución de software de interruptor táctil centrada en Atmel más completa y completa aquí . Se llama QTouch y es probable que sea incompatible con el SDK de Arduino.