Jan Górski
Guest
Fri Jan 07, 2011 12:01 am
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 :
http://mathmed.blox.pl/resource/capSensor.png
Czas mierzony w cyklach, górna granica 200 cykli po 1ms :
http://www.youtube.com/watch?v=571syX3tXO8
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).
dolczak
Guest
Fri Jan 07, 2011 2:59 pm
A rezystancja palca to kij???
Użytkownik "Jan Górski" <gradlog@o2.pl> napisał w wiadomości
news:b4b00dce-cb56-4115-bff9-d6459f6b79b5@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 :
http://mathmed.blox.pl/resource/capSensor.png
Czas mierzony w cyklach, górna granica 200 cykli po 1ms :
http://www.youtube.com/watch?v=571syX3tXO8
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).
Piotr Gałka
Guest
Fri Jan 07, 2011 4:19 pm
Użytkownik "dolczak" <dolczak@wp.pl> napisał w wiadomości
news:4d271c3b$0$2452$65785112@news.neostrada.pl...
Quote:
A rezystancja palca to kij???
Pisał: "Po dotknięciu ręką _izolowanej_ elektrody sensora".
P.G.
Quote:
Użytkownik "Jan Górski" <gradlog@o2.pl> napisał w wiadomości
news:b4b00dce-cb56-4115-bff9-d6459f6b79b5@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 :
http://mathmed.blox.pl/resource/capSensor.png
Czas mierzony w cyklach, górna granica 200 cykli po 1ms :
http://www.youtube.com/watch?v=571syX3tXO8
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).