Existe-t-il un moyen de faire en sorte qu'un Arduino ou un autre microcontrôleur détecte un changement de capacité?
Je pense avoir un écran sur ma porte qui ne s'allume que lorsque vous touchez la poignée de porte en métal.
Existe-t-il un moyen de faire en sorte qu'un Arduino ou un autre microcontrôleur détecte un changement de capacité?
Je pense avoir un écran sur ma porte qui ne s'allume que lorsque vous touchez la poignée de porte en métal.
Réponses:
Oui.
Le moyen le plus simple serait d'utiliser une résistance de haute valeur (1-10M) et de suivre les instructions de cet ancien message du forum arduino: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1171076259
Voici un tutoriel http://www.nerdkits.com/videos/halloween_capacitive_touch_sensor/
Le capteur réel utilisé pour détecter la présence d'une main est expliqué en détail dans la vidéo, mais voici un aperçu. Notre capteur fonctionne sur le même principe qu'un capteur tactile capacitif fonctionne sur le pavé tactile de votre ordinateur portable. Ces capteurs tactiles capacitifs partent du principe que les humains sont principalement de l'eau. Lorsque vous vous approchez d'un champ électrique, vous modifiez suffisamment la capacité pour être remarqué par le capteur.
Dans notre système, nous avons mis en place un circuit RC avec un condensateur et une résistance en parallèle. Nous utilisons le MCU pour charger un condensateur jusqu'à 5V (une haute tension numérique). Ensuite, nous transformons la broche en une broche d'entrée, qui déconnecte essentiellement ce nœud. Cela permet au condensateur de se décharger à travers la résistance. Le temps nécessaire au condensateur pour se décharger sera lié à la valeur de la résistance multipliée par la capacité. Nous choisissons une valeur de résistance suffisamment grande pour que la constante de temps RC soit suffisamment longue pour que nous puissions mesurer avec le MCU. Dans ce cas, 100 000 ohms ont très bien fonctionné. Dans ce cas, le capteur est composé de deux feuilles de papier d'aluminium, l'une connectée à la broche MCU et l'autre connectée à GND. Ces deux feuilles créent un condensateur que notre MCU charge et décharge. Lorsque vos mains se déplacent entre les deux feuilles, cela modifie le champ électrique, et donc la capacité de notre engin en feuille d'étain. Le condensateur prend donc plus de temps à se décharger, ce qui est détecté par le code de notre microcontrôleur!
L'un des meilleurs moyens que j'ai trouvés pour mesurer la capacité est d'utiliser un circuit RC. Utilisez un port d'E / S numérique sur un microprocesseur pour charger et décharger le capteur capacitif via une résistance fixe. Démarrez une minuterie lorsque vous commencez le cycle de charge / décharge. Utilisez ensuite un comparateur pour détecter lorsque le condensateur est complètement chargé / déchargé. Arrêtez la minuterie lorsque le comparateur se déclenche. La valeur stockée dans la minuterie peut ensuite être utilisée pour calculer la capacité du capteur.
Pas une réponse spécifique à Arduino, mais Microchip a une explication d'une façon de le faire sur le PIC - qui pourrait éventuellement fonctionner sur un AVR
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en545264
Le seul problème avec ces méthodes est le manque de protection contre les décharges d'électricité statique
Un capteur tactile capacitif peut être réalisé sans matériel supplémentaire. L'astuce consiste à activer le pull-up interne d'une broche numérique et à compter les cycles de processeur nécessaires pour tirer la broche vers le haut.
Code et explication: http://playground.arduino.cc/Code/CapacitiveSensor
Je préfère retirer la partie analogique du travail du microrégulateur en utilisant le condensateur sous test dans le cadre d'un oscillateur, puis en utilisant le contrôleur pour mesurer la largeur du fusible. C'est une partie supplémentaire, mais j'ai obtenu de meilleurs résultats de cette façon.