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

[Rozwiązano] Jak uzyskać dokładnie 0V na nóżce uC Atmega32a? Napięcie około 10mV

Matijjos 29 Maj 2017 11:07 2121 11
REKLAMA
  • #1 16500814
    Matijjos
    Poziom 7  
    Dzień dobry,

    mam takie pytanie. Jak uzyskać dokładnie 0V na nóżce uC? Pracuję na atmega32a, jak ustalam na wyjściu stan 0, to w dalszym ciągu jest tam napięcie, około 10mV. Podłączam do tej nóżki przycisk telefonu, tak aby po podaniu sygnału uC "wcisnął" przycisk. I faktycznie, gdy na nóżkę sygnał jest wysłany, telefon rozumie to jako zwarcie przycisku. Problem jest, gdy teoretycznie na uC jest 0. Telefon nie widzi stanu wysokiego, bo nie wpisuje przycisku, ale też nie widzi 0- widać to dobrze, bo kursor w telefonie mruga szybciej niż powinien, a sam telefon blokuje możliwość wciśnięcia innego przycisku. Wiecie może jak to rozwiązać? Z góry dzięki za pomoc.
  • REKLAMA
  • #2 16500821
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #3 16500824
    michalko12
    Specjalista - Mikrokontrolery
    A w tym telefonie klawiatura nie jest przypadkiem multipleksowana?
  • #4 16500881
    Matijjos
    Poziom 7  
    Telefon, z którego korzystam to Siemens A52 http://www.mgsm.pl/pl/katalog/siemens/a52/Siemens-A52.html,

    aczkolwiek prawdopodobnie przerzucę się na Nokię 3310, bo ten telefon jest już trochę wymęczony przez ciągłe lutowanie.

    Szczerze to nie wiem co to to multipleksowanie, poczytam.

    Napięcie pomiędzy polami przycisku to około 2,4-2,8V. Jak wciskam przycisk, to napięcie na obu polach jest takie samo. I tak chciałem zrobić u mnie. Czyli np. jedno pole przycisku podłączam do zasilania układu- z usb 5V. I gdy fizycznie drugie pole zewrę do tego zasilania, przycisk się "wciska". Natomiast gdy to pierwsze pole jest do zasilania, a drugie do nóżki uC, to gdy sygnał z nóżki jest, to przycisk się "wciska", a gdy nie ma to blokuje telefon
  • REKLAMA
  • #6 16500913
    Matijjos
    Poziom 7  
    Też o tym myślałem, niestety się na tym nie znam. Wiem, że ten sposób, który robię nie jest najlepszy, ale wydaje mi się, że niewiele już brakuje i bardzo chciałbym skończyć w ten sposób.
  • Pomocny post
    #7 16500924
    krzysiek_krm
    Poziom 40  
    Witam,
    abstrahując od tego czy jest multipleksowanie czy nie, najbezpieczniej będzie użyć transoptor. Wejściem transoptora sterujesz z procesora, wyjście (dwa piny) podłączasz równolegle ze stykami przycisku. Wyjście transoptora jest "swobodne", to znaczy nie musi mieć żadnego konkretnego potencjału odniesienia: masy, zasilania lub innego. Po prostu zwiera dwa sygnały gdy transoptor jest wysterowany i rozwiera gdy nie jest (dokładnie płynie jakiś prąd ciemny, ale raczej pomijalny w Twoim przypadku).

    Pozdrawiam
  • #8 16500928
    viayner
    Poziom 43  
    Witam,
    Komendy AT wysylasz portem szeregowym, poszukaj spisu komend jaki twoj telefon obsluguje.
    Wracajac do twojego rozwiazania, nie zadziala ono w przypadku wspomnianej klawiatury multiplexowanej, prosciej w takiej klawiaturze nie masz przypisanej jednej linj/pinu do jednego klawisza jak to ma miejsce w tradycyjnej. W multiplexowanej masz np. 4 linje sterujace i 4 czytajace co daje matryce 4x4=16 pol stykowych a kontroller wykrywa ktora linja z ktora zostala zwarta a nie wykrywa konkretnego stanu linji.
    Jezeli chcesz koniecznie pozostac przy tym rozwiazaniu to zastosuj klucz/przelacznik analogowy sterowany z twojego mikrokontrolera a zwierajacy oba styki na klawiaturze.
    Pozdrawiam
  • Pomocny post
    #9 16502477
    folkien
    Poziom 12  
    Matijjos napisał:
    Dzień dobry,

    mam takie pytanie. Jak uzyskać dokładnie 0V na nóżce uC? Pracuję na atmega32a, jak ustalam na wyjściu stan 0, to w dalszym ciągu jest tam napięcie, około 10mV. Podłączam do tej nóżki przycisk telefonu, tak aby po podaniu sygnału uC "wcisnął" przycisk. I faktycznie, gdy na nóżkę sygnał jest wysłany, telefon rozumie to jako zwarcie przycisku. Problem jest, gdy teoretycznie na uC jest 0. Telefon nie widzi stanu wysokiego, bo nie wpisuje przycisku, ale też nie widzi 0- widać to dobrze, bo kursor w telefonie mruga szybciej niż powinien, a sam telefon blokuje możliwość wciśnięcia innego przycisku. Wiecie może jak to rozwiązać? Z góry dzięki za pomoc.


    Czy mógłbyś jeszcze raz to wyjaśnić, najlepiej z rysunkiem jak podłączyłeś się do telefonu? Przypuszczam, że w twoim przypadku jeden tranzystor rozwiązałby problem.

    Przyciski do uc podłącza się najczęściej tak
    Jak uzyskać dokładnie 0V na nóżce uC Atmega32a? Napięcie około 10mV
    (obraz pochodzi z https://www.embeddedrelated.com/showarticle/462.php), dlatego wymuszenie stanu tego przycisku nie powinno być skomplikowane.
  • #10 16503336
    Matijjos
    Poziom 7  
    Wszystkim wielkie dzięki za pomoc, szczególnie dla krzysiek_krm, bo to jego pomysł z transoptorem wybrałem i działa dokładnie tak jak chciałem :-)

    Wcześniej podłączałem jedno pole przycisku do wybranej nóżki uC, z której chciałem dawać sygnał a drugą nóżkę do masy. Gdy sygnał się pojawiał na nóżce, to faktycznie telefon wpisywał wybrany przycisk. Ale gdy sygnału nie było, to telefon był jakby zablokowany, np wciskanie innych przycisków powodowało, że na ekranie pojawiał się ten przycisk podłączony do uC. Nie wiem dokładnie dlaczego tak było, ale opcja z transoptorem sobie z tym poradziła znakomicie, jeszcze raz dzięki!
  • REKLAMA
  • #11 16560122
    Konto nie istnieje
    Konto nie istnieje  
  • #12 17708383
    Matijjos
    Poziom 7  
    Temat zamknięty
REKLAMA