Dotykowy czujnik pojemno?ciowy [avr]

Obejrzałem sobie prezentację microchipa i powiedzieli tam, że w przypadku czujników pojemnościowych, można liczyć na następującą zależność. Po dotknięciu ręką izolowanej elektrody sensora, czas ładowania i rozładowania wydłuża się, w stosunku do spoczynkowego. Bo ciało jest kondensatorem dołączonym równolegle do pojemności własnej czujnika.

I zmontowałem sobie taki czujnik na AVR, okazuje się jednak, że działa to inaczej. Czas rozładowania (bo ten mierzę), spada, kiedy dotykam ręką. Dlaczego ? Czy coś źle robię ?

Schemat tutaj :

formatting link
mierzony w cyklach, górna granica 200 cykli po 1ms :
formatting link
Zastosowany algorytm : c : ///////AVR GCC////////////////////////////////////// int getData() { int cykli=0; DDRB |= 1; // set pin 1 as output PORTB |= 1; // set pin 1 high _delay_ms(20); // wait for the capacitor to charge DDRB &=~1; // set pin 1 as input PORTB &=~1; // set pin 1 tri/state while((PINB&1) && (cykli<200)) { // count the cycles within specified range (200), // until pinb gets low depends on parallel resistance // and capacitance values _delay_ms(1); cykli++; } return cykli; } //////////////////////////////////////////////////////

text : Cykl zbierania danych rozpoczyna naładowanie kondensatora (port jako wyjście - DDR =1, w stanie wysokim, PORT = 1) przez 20ms. Czas należy dobrać indywidualnie, ten jest aż nadto wystarczający. Następnie pin przełącza się jako wejście trójstanowe (DDR = 0; PORT =

0). W tym czasie następuje rozładowanie przez upływność układu. Jest to mierzone w cyklach. Dołożenie palca sprawia, że rozładowanie jest szybsze (zajmuje mniej cykli).
Reply to
Jan Górski
Loading thread data ...

A rezystancja palca to kij???

Użytkownik "Jan Górski" snipped-for-privacy@o2.pl napisał w wiadomości news: snipped-for-privacy@fu15g2000vbb.googlegroups.com... Obejrzałem sobie prezentację microchipa i powiedzieli tam, że w przypadku czujników pojemnościowych, można liczyć na następującą zależność. Po dotknięciu ręką izolowanej elektrody sensora, czas ładowania i rozładowania wydłuża się, w stosunku do spoczynkowego. Bo ciało jest kondensatorem dołączonym równolegle do pojemności własnej czujnika.

I zmontowałem sobie taki czujnik na AVR, okazuje się jednak, że działa to inaczej. Czas rozładowania (bo ten mierzę), spada, kiedy dotykam ręką. Dlaczego ? Czy coś źle robię ?

Schemat tutaj :

formatting link
mierzony w cyklach, górna granica 200 cykli po 1ms :
formatting link
Zastosowany algorytm : c : ///////AVR GCC////////////////////////////////////// int getData() { int cykli=0; DDRB |= 1; // set pin 1 as output PORTB |= 1; // set pin 1 high _delay_ms(20); // wait for the capacitor to charge DDRB &=~1; // set pin 1 as input PORTB &=~1; // set pin 1 tri/state while((PINB&1) && (cykli<200)) { // count the cycles within specified range (200), // until pinb gets low depends on parallel resistance // and capacitance values _delay_ms(1); cykli++; } return cykli; } //////////////////////////////////////////////////////

text : Cykl zbierania danych rozpoczyna naładowanie kondensatora (port jako wyjście - DDR =1, w stanie wysokim, PORT = 1) przez 20ms. Czas należy dobrać indywidualnie, ten jest aż nadto wystarczający. Następnie pin przełącza się jako wejście trójstanowe (DDR = 0; PORT =

0). W tym czasie następuje rozładowanie przez upływność układu. Jest to mierzone w cyklach. Dołożenie palca sprawia, że rozładowanie jest szybsze (zajmuje mniej cykli).
Reply to
dolczak

Użytkownik "dolczak" snipped-for-privacy@wp.pl napisał w wiadomości news:4d271c3b$0$2452$ snipped-for-privacy@news.neostrada.pl...

Pisał: "Po dotknięciu ręką _izolowanej_ elektrody sensora". P.G.

Reply to
Piotr Gałka

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.