logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zwiększyć czułość klawiatury pojemnościowej na Attiny2313 w BASCOM?

LemuRR 11 21 Lut 2013 21:30 3018 18
  • #1 11968100
    LemuRR 11
    Poziom 26  
    Witam
    Staram się wykonać klawiaturę pojemnościową.
    wzoruję się na tym:
    http://www.bytecraft.com/Touch_Sensitive_Switch

    w bascomie wyszło mi coś takiego:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    czułość jest bardzo mała, jeżeli wstawię wait w miejsce gdzie powinno być (czekać 5us) to czułość spada jeszcze bardziej.

    Próbowałem zrobić na timerze, ale efekt był taki że led tylko migał..
    Może ktoś już zmagał się z takim problemem ?
    Za wszelkie podpowiedzi będę bardzo wdzięczny
  • #2 11968204
    2rs232
    Poziom 18  
    Zapis do wejścia ?
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 11968216
    LemuRR 11
    Poziom 26  
    2rs232 napisał:
    Zapis do wejścia ?
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Tak, w bascomie się tak da (:
    Chodzi o to że wtedy pin robi jako źródło prądowe, i ładuje pojemność.

    Jeżeli tego nie zrobię, nie działa ani trochę.
  • Pomocny post
    #4 11968357
    Konto nie istnieje
    Poziom 1  
  • #5 11968514
    LemuRR 11
    Poziom 26  
    Ale program pracuje w pętli, więc przynajmniej według mojego rozumowania wszystko powino być ok.
    Ala fakt faktem, nie działa jak powinno, a bez wpisania tam jedynki, wogule.
    Dlatego piszę, bo nie mam pojęcia co dalej robić..
    Dzięki za zainteresowanie tematem :-)
  • #7 11969113
    vonar
    Poziom 28  
    atom1477, przecież o ile jakieś przerwanie w międzyczasie nie zmienia Portd.5 to kod
    Kod: text
    Zaloguj się, aby zobaczyć kod
    w końcu ustawi Portd.5. Wpisujemy 1 do rejestru PIN, powodując zmianę stanu odpowiedniego bitu w PORT, a że na pewno wcześniej jest tam 0, to dostajemy jedynkę.

    No ale Portd.5 zamiast Pind.5 byłoby przejrzyściej.
  • #9 11969670
    2rs232
    Poziom 18  
    W nowszych atmegach np. m644, m48, m88 możemy wykorzystywać zapis "1" do negacji stanu portu.

    Cytat:
    14.2.2 Toggling the pin
    Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn.
    Note that the SBI instruction can be used to toggle one single bit in a port.
  • Pomocny post
    #10 11969728
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #11 11969896
    piotrva
    VIP Zasłużony dla elektroda
    To chyba tytułem różnicy rejestrów PINn i PORTn wszystko zostało powiedziane.
    A w temacie - czułość układu zależy od wielu parametrów:
    1. rozmiary pola dotykowego
    2. wartość rezystora "pomiarowego"
    3. prowadzenie ścieżek między procesorem a polem (na kabelkach wyniki są mało powtarzalne - wystarczy przesunąć kabelek o parę mm bliżej/dalej innego i już wszystko pływa...)
    itd.
    Poczytaj nieco o układach RC - to powinno rzucić trochę światła teorii na Twoje zmagania.
  • #12 11971283
    LemuRR 11
    Poziom 26  
    Niestety, próbowałem z różnymi wartościami rezystora, z różnymi czasami, niestety nie działa przez plexi (3mm)
    Po zmianie, tego co wyżej uznaliście za błędne, nic nie uległo zmianie.

    Powoli już tracę motywację, przez papier jeszcze działa, ale przykładając ekierkę do pola dotykowego, już nie.

    A wykonalne jest na na 100%
    kiedyś trafił mi się do naprawy właśnie z taką klawiaturą zamek szyfrowy, tam działało przez plexi o grubości ok 5mm.
  • Pomocny post
    #13 11971329
    piotrva
    VIP Zasłużony dla elektroda
    No to może:
    1. schemat
    2. zdjęcia
    3. wartości rezystorów
    ---
    A to że wykonalne jest każdy z nas o tym dobrze wie :D
    I coś szybko tracisz motywację :D
  • #14 11971460
    LemuRR 11
    Poziom 26  
    piotrva napisał:

    I coś szybko tracisz motywację :D


    Narazie sobie trochę odetchnę :)
    Męczę się z tym już ok miesiąca :)

    Chyba że po prostu kipię to: AT42QT1070
    i po problemie (:
  • Pomocny post
    #15 11971647
    piotrva
    VIP Zasłużony dla elektroda
    No, ale jeśli chcesz, żeby Ci pomóc, to pokaż to o co prosiłem.
    Jak mawia kolega BlueDarco:
    BlueDarco napisał:

    no schemat - no pomoc

    ;)
    Bo sprawa nie jest na prawdę jakaś bardzo skomplikowana.
    EDIT:
    Poczytaj jeszcze to: http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense i przejrzyj załączone tam kody źródłowe.
  • Pomocny post
    #16 11975331
    Konto nie istnieje
    Poziom 1  
  • #18 11978875
    LemuRR 11
    Poziom 26  
    Kod: text
    Zaloguj się, aby zobaczyć kod


    No i pojawia się problem, przy histerezie 30 jest wartością min, kiedy led świeci się na zielono.
    Niestety program nie reaguje nawet na zmianę kondensatora..
  • Pomocny post
    #19 11981525
    Konto nie istnieje
    Poziom 1  
REKLAMA