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

[ATMEGA32][C]nietypowa obsługa klawiatury

margas4542 17 Wrz 2010 14:17 1463 7
  • #1 8520553
    margas4542
    Poziom 16  
    Witam.Czasami brakuje pinów mikrokontrolera na obsługę kilku klawiszy a mamy wolny port ADC który można by wykorzystać i tak narodził się ten pomysł który chciałem skonsultować z forumowiczami. Idea jest prosta dzielnik rezystorów zasilany ze stabilnego źródła napięciowego i programowo ustalone progi napięć z tolerancją 0.2V kontrolowane w petli if(warunek) wykonaj np;PORTx=0x01

    [img]
    [ATMEGA32][C]nietypowa obsługa klawiatury
    [/img]
  • Pomocny post
    #2 8520580
    szelus
    Poziom 34  
    Widziałem podobne rozwiązanie kiedyś w jakimś magnetowidzie. Czyli sprawdza się nawet na skalę masową. :)
    Oczywiście, drgania styków też będziesz musiał filtrować - przez sprawdzanie stabilności wyniku.
    Ten ADC jeszcze do czegoś wykorzystujesz?
  • Pomocny post
    #3 8520693
    mirekk36
    Poziom 42  
    Taki pomysł narodził się już bardzo dawno temu ;) ... i bywa szeroko i z powodzeniem stosowany "tu i tam" .... zatem i u ciebie się sprawdzi bez najmniejszego problemu. Kwestia tylko dobrania rezystorów i sprawdzania czy napięcie mieści się w założonych granicach dla każdego z naciśniętych klawiszy. Do takich celów nawet nie ma konieczności stosowania jakiegoś specjalnego źródła odniesienia jak zdaje się być to na twoim schemacie. Wystarczą same rezystorki w dzielniku, a ten który masz "na dole" przy GND można dać "na górze" przy VCC żeby dzielił np +5V na 2 . W "dolnej części" rezystory dla klawiszy no i wykorzystanie wewnętrznego źródła odniesienia w procku 2,56. Chyba że masz procka z wewn. 1,1V wtedy nieco tylko zmieniasz cały dzielnik klawiatury.

    To zwykle działa bardzo dobrze i wcale nie trudno to oprogramować ;)
  • #4 8520793
    szelus
    Poziom 34  
    Pytałem o wykorzystanie ADC, bo faktycznie, dodatkowe źródło napięcia odniesienia tylko do klawiatury nie ma sensu. Z tym, że w przypadku zasilania dzielnika klawiatury bezpośrednio z Vcc, to chyba lepiej jako referencji użyć właśnie Vcc, prawda?
  • #5 8520869
    mirekk36
    Poziom 42  
    szelus napisał:
    Pytałem o wykorzystanie ADC, bo faktycznie, dodatkowe źródło napięcia odniesienia tylko do klawiatury nie ma sensu. Z tym, że w przypadku zasilania dzielnika klawiatury bezpośrednio z Vcc, to chyba lepiej jako referencji użyć właśnie Vcc, prawda?


    Moim zdaniem zdecydowanie nie używać jako źródła referencji VCC co można oczywiście wybrać programowo ustawiając ADC. Zdecydowanie lepiej użyć wewnętrznego źródła odniesienia w procesorze, które będzie o wiele stabilniejsze. A w opaciu o nie mierzyć wręcz napięcie VCC żeby odpowiednio reagować na jego spadki. Wyobraź sobie np że przyłączysz kiedyś swoje urządzenie do USB, tzn zasilisz je z USB a wtedy napięcie VCC może spaść nawet do 4,6V albo i więcej. Wyobrażasz sobie chyba od razu co będzie z dzielnikiem i napięciami na nim ? ;) ... a ty nie będziesz nawet mógł się o tym przekonać programowo i klawiatura zacznie świrować. Tymczasem mając wewn źródło 2,56 już można sobie spokojnie programowo bez żadnych wielkich sztuczek z tym poradzić.
  • #6 8520977
    szelus
    Poziom 34  
    No właśnie jest dokładnie na odwrót.
    Jeżeli mierzysz napięcie na dzielniku, który jest zasilany ze źródła napięcia odniesienia, to wynik będzie niezależny od zmian (długookresowych) tego napięcia. Jeżeli używasz wewnętrznego napięcia odniesienia, a dzielnik zasilasz z Vcc i zakładasz, że Vcc może podlegać zmianom, to wręcz musisz monitorować dodatkowo Vcc i odpowiednio korygować oczekiwane wartości przyporządkowane poszczególnym klawiszom.
  • #7 8521026
    mirekk36
    Poziom 42  
    szelus napisał:
    No właśnie jest dokładnie na odwrót.
    Jeżeli mierzysz napięcie na dzielniku, który jest zasilany ze źródła napięcia odniesienia, to wynik będzie niezależny od zmian (długookresowych) tego napięcia. Jeżeli używasz wewnętrznego napięcia odniesienia, a dzielnik zasilasz z Vcc i zakładasz, że Vcc może podlegać zmianom, to wręcz musisz monitorować dodatkowo Vcc i odpowiednio korygować oczekiwane wartości przyporządkowane poszczególnym klawiszom.
    No tak, trochę się zakręciłem, oczwiście, że wartości bezwzględne pomiaru ADC będą takie same przy zmianach napięcia VCC ;) racja .... Nie mniej jednak sposób, który opisałem także by działał, w przypadku sprawdzania już wartości napięcia VCC i korygowania odczytów. Tyle, że faktycznie będzie to ciut bardziej skomplikowane niż gdyby zrobić jak piszesz w oparciu o referencję w postaci VCC.
  • #8 8521179
    margas4542
    Poziom 16  
    .....dziękuje za wypowiedzi....dla mnie tej jeden AD580 to żaden problem bo nie korzystam wewnętrznego Vref 2,56 tylko to napięcie na ATMEGE podaje AD580 co wydaje mi się jest dobrym rozwiązaniem (przynajmniej nie pływa)....to rozwiązanie klawiatury "uwalnia" kilka pinów jak i upraszcza samą płytkę drukowaną...dziękuje za opinie i pozdrawiam...
REKLAMA