Dotykowy czujnik pojemno?ciowy [avr]

Jan 06, 2011 2 Replies

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).

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).

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.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required