Jeg har ikke lest koden i biblioteket, så reell virkemåte kan være omvendt selv om det jeg skriver stemmer med teksten i boken. Prinsippet er det samme enten man måler tid for opplading eller utlading.
Ja, kroppen tar opp ladning.
Ladning er Q slik du skriver. Den måles vanligvis i coloumb, men kan også måles i ampere-sekunder. [1 C = 1 As]. Da ser du at en ladning er et resultat av at elektroner har flyttet på seg over tid.
Når arduionoen setter opp en spenning (5V) på
pinne 4 vil det gå en liten
strøm ut av den og gjennom motstanden slik at det fylles på med ladning i metallfolien. Når du er nær folien, vil det kunne fylles opp med mange flere ladninger fordi du blir en del av den. Det tar tid å fylle opp med ladninger slik at metallfolien (og du) har fått samme spenning (5V) som det er på pinne 4. Du og metallfolien vil ha samme effekt som en kondensator, og da går det an å regne litt.
Det er en formel som sier at tau = resistansen i ohm x kapasitansen i farad. Tau er en gresk bokstav som ser ut som en deformert T. Jeg får ikke til den på dette tastaturet, så jeg skriver T = R x C.
Tau betyr tidskonstant, og 1T er den tiden det tar (i sekunder) å lade opp en kondensator til 63% av tilført spenning. 63% av 5V = 3,15V. For alle praktiske formål regner vi at det tar 5T å lade opp kondensatoren til tilført spenning (100%).
https://www.electronics-tutorials.ws/rc/rc_1.htmlDu bruker en digital inngang på arduinoen for å føle nivået på kondensatoren. Det er litt spesielt, men ikke så dumt. En typisk arduino vil tolke signalet som logisk 1 hvis det er større enn 0,6 ganger drivspenningen. Det passer veldig godt sammen med at 1T er 63%.
Grunnfunksjonen i programmet ditt måler altså hvor lang tid det tar fra du begynner å lade opp "kondensatoren" og til den har nådd ca. 60%. Det vil si at du egentlig måler tidskonstanten. Nå kjenner du allerede resistansen som er 1 Mohm i eksempelet, og da blir kapasitansen i farad C = T/R. Tallet du får blir svært lite, for 1 farad er en veldig stor verdi for en kondensator.
Det står litt her også hvis du ikke alt har sett det:
http://playground.arduino.cc/Main/CapacitiveSensorDette er en
krets som er lett å forstyrre, og de nevner flere feilkilder med mulige løsninger.
Jeg håper det ble korrekt sent på natten