eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Dotykowy czujnik pojemnościowy [avr]
Ilość wypowiedzi w tym wątku: 3

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

strony : [ 1 ]


Szukaj w grupach

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: