C'è un modo in cui posso fare in modo che un Arduino o un altro microcontrollore rilevi un cambiamento di capacità?
Sto pensando di avere uno schermo sulla mia porta che si accende solo quando tocchi la maniglia della porta di metallo.
C'è un modo in cui posso fare in modo che un Arduino o un altro microcontrollore rilevi un cambiamento di capacità?
Sto pensando di avere uno schermo sulla mia porta che si accende solo quando tocchi la maniglia della porta di metallo.
Risposte:
Sì.
Il modo più semplice sarebbe usare un resistore di alto valore (1-10 M) e seguire le istruzioni su questo vecchio post sul forum di Arduino: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1171076259
Ecco un tutorial http://www.nerdkits.com/videos/halloween_capacitive_touch_sensor/
Il sensore effettivo utilizzato per rilevare la presenza di una mano è spiegato in dettaglio nel video, ma ecco una panoramica. Il nostro sensore funziona secondo lo stesso principio secondo cui un sensore tattile capacitivo funziona sul touchpad del laptop. Questi sensori tattili capacitivi funzionano sul presupposto che gli esseri umani sono principalmente acqua. Quando ti avvicini a un campo elettrico, modifichi la capacità abbastanza da essere notata dal sensore.
Nel nostro sistema abbiamo installato un circuito RC con un condensatore e una resistenza in parallelo. Usiamo l'MCU per caricare condensatori fino a 5 V (un'alta tensione digitale). Quindi trasformiamo il pin in un pin di input, che essenzialmente disconnette quel nodo. Ciò consente al condensatore di scaricarsi attraverso la resistenza. Il tempo necessario per scaricare il condensatore sarà correlato al valore del resistore moltiplicato per la capacità. Scegliamo un valore di resistenza abbastanza grande che la costante di tempo RC sia abbastanza lunga da consentirci di misurare con l'MCU. In questo caso, 100K ohm funzionavano alla grande. Il sensore in questo caso è costituito da due fogli di foglio di alluminio, uno collegato al pin MCU e uno collegato a GND. Questi due fogli creano un condensatore che la nostra MCU sta caricando e scaricando. Quando le tue mani si muovono tra i due fogli, altera il campo elettrico, e quindi la capacità del nostro aggancio di lamina di stagno. Il condensatore impiega quindi più tempo a scaricarsi, e questo viene rilevato dal codice sul nostro microcontrollore!
Uno dei modi migliori che ho trovato per misurare la capacità è usare un circuito RC. Utilizzare una porta I / O digitale su un microprocessore per caricare e scaricare il sensore capacitivo attraverso una resistenza fissa. Avviare un timer quando si avvia il ciclo di carica / scarica. Quindi utilizzare un comparatore per rilevare quando il condensatore si è completamente caricato / scaricato. Fermare il timer quando il comparatore scatta. Il valore memorizzato nel timer può quindi essere utilizzato per calcolare la capacità del sensore.
Non una risposta specifica per Arduino, ma Microchip ha una spiegazione di un modo per farlo sul PIC - che potrebbe funzionare su un AVR
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en545264
L'unica preoccupazione per questi metodi è la mancanza di protezione dalle scariche statiche
Un sensore tattile capacitivo può essere realizzato senza hardware aggiuntivo. Il trucco è abilitare il pull-up interno di un pin digitale e contare i cicli della CPU necessari per sollevare il pin.
Codice e spiegazione: http://playground.arduino.cc/Code/CapacitiveSensor
Preferisco allontanare la parte analogica del lavoro dal microntroller usando il condensatore in prova come parte di un oscillatore e quindi usando il controller per misurare la larghezza della miccia. È una parte extra, ma ho avuto risultati migliori in questo modo.