eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDotykowy czujnik pojemnościowy [avr]Re: Dotykowy czujnik pojemnościowy [avr]
  • Data: 2011-01-07 15:19:27
    Temat: Re: Dotykowy czujnik pojemnościowy [avr]
    Od: Piotr Gałka <p...@C...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]


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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: