-
1. Data: 2011-01-06 22:01:29
Temat: Dotykowy czujnik pojemnościowy [avr]
Od: Jan Górski <g...@o...pl>
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).
-
2. Data: 2011-01-07 13:59:26
Temat: Re: Dotykowy czujnik pojemnościowy [avr]
Od: "dolczak" <d...@w...pl>
A rezystancja palca to kij???
Użytkownik "Jan Górski" <g...@o...pl> napisał w wiadomości
news:b4b00dce-cb56-4115-bff9-d6459f6b79b5@fu15g2000v
bb.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).
-
3. Data: 2011-01-07 15:19:27
Temat: Re: Dotykowy czujnik pojemnościowy [avr]
Od: Piotr Gałka <p...@C...pl>
Użytkownik "dolczak" <d...@w...pl> napisał w wiadomości
news:4d271c3b$0$2452$65785112@news.neostrada.pl...
>A rezystancja palca to kij???
Pisał: "Po dotknięciu ręką _izolowanej_ elektrody sensora".
P.G.
>
> Użytkownik "Jan Górski" <g...@o...pl> napisał w wiadomości
> news:b4b00dce-cb56-4115-bff9-d6459f6b79b5@fu15g2000v
bb.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).
>