Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega8] klawiatura matrycowa - podłączenie

05 Lis 2011 09:54 7538 16
  • Poziom 12  
    Witajcie. Jestem jeszcze dość początkujący w tych sprawach i potrzebuję waszej pomocy.

    Znalazłem na jednej ze stron taki schemat: http://www.voytek.evbox.pl/programy/klawiatura_4x4/4x4_LCD_atm8.png

    I chciałbym wiedzieć czy takie podłączenie jest bezpieczne. Logicznie rozumując wciśnięcie któregokolwiek z przycisku spowoduje doprowadzenie napięcia 5V na odpowiednie porty. Czy takie podłączenie nie uszkodzi mikrokontrolera?
  • Pomocny post
    Poziom 20  
    Nie uszkodzi Ci to mikroprocesora, wiesz, że żeby wykryć wciśnięcie w takiej klawiaturze trzeba ją skanować (odpowiednio nią sterować) z odpowiednią częstotliwością?
  • Poziom 12  
    Tak wiem.

    W takim razie dlaczego niektóre schematy mają jakieś dodatkowe elementy przy klawiaturach, a nie same microswitche?
  • Pomocny post
    Poziom 20  
    Mogą to np być filtry drgań zestyków albo jakieś "usprawniacze" albo np podciąganie pinów do VCC (AVR mają wewnętrzne pullup'y). Schemat który pokazałeś to najprostszy schemat klawiatury 4x4.
  • Poziom 12  
    A jakie usprawniacze jeszcze można dodać do takiej klawiatury?

    Czy dodanie odpowiednich zwłok czasowych od pierwszego wykrycia sygnału do ustabilisowania się drgań programowo i to samo przy zwolnieniu wystarczy, aby obsłużyć taką klawiaturę?
  • Pomocny post
    Poziom 20  
    Przy puszczeniu raczej o drgania nie musisz się martwić jedynie przy naciskaniu.
    Możesz np takie coś dodać:
    [atmega8] klawiatura matrycowa - podłączenie
    I wtedy masz sygnał wciśnięcia klawisza (któregokolwiek) i odpada skanowanie cały czas (wykrywasz zbocze opadające na tym pinie czekasz 20ms jeśli dalej jest 0 to sprawdzasz który klawisz wciśnięty) dzięki temu odpada bardziej skomplikowana eliminacja drgań zestyków jak i nie trzeba non stop sprawdzać tylko można to pod przerwanie podpiąć :D
  • Poziom 12  
    A co to jest dokładnie za dioda? I do czego ona ma być podpięta w mikrokontrolerze?

    Dodano po 1 [godziny] 35 [minuty]:

    A jak taki układ (gdzie jest dużo krzyżowania się ścieżek) poukładać, żeby wytrawić na płytce?
  • Pomocny post
    Poziom 20  
    Najzwyklejsza dioda np : 1n4148. Podpinasz to pod np wejście INT0 w procku :)
  • Poziom 12  
    Hmm, przygotowałem taki schemat pcb pod klawiaturę matrycową o rozmiarze 4x5.

    [atmega8] klawiatura matrycowa - podłączenie

    Zastanawiam się jeszcze nad jedną rzeczą. Mianowicie microswitch ma 4 piny. Moje logiczne myślenie podpowiada mi że są one parami, czyli że dwa pierwsze są połączone i w momencie wciśnięcia zwiera je z dwoma pozostałymi. Czyli właściwie można używać po jednym pinie z każdej strony. Czy mam rację? Jeśli się mylę to mój schemat chyba do kosza.

    Teraz jeśli chodzi o opcję bez przerwań (pod taką mam schemat). W jaki sposób takie coś obsługuje atmega. Bo jeśli podłączamy jeden switch to sprawa jest prosta, jedna strona do pinu, druga do +5V i wtedy w momencie wciśnięcia mamy wyraźny sygnał na pinie, że jest wciśnięcie. Ale rozumując ten schemat to wciśnięcie powoduje zwarcie dwóch pinów z procesora. Zatem czy to w ogóle zmieni ich sygnał? Jak to obsłużyć programowo?

    Z góry dziękuję za pomoc.

    Edit: Opisałem miejsca w których występują 4 pierwsze switche, reszta analogicznie.
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    Co do switchy to rozumujesz prawidłowo, są zwierane parami.
    Co do sterowania - wiesz jak się steruje multipleksowo wyświetlaczami? No więc klawiaturą się steruje tak samo. Port sterujący np. kolumnami ustawiasz jako wyjście, podt do którego masz podłączone rzędy ustawiasz jako wejście. Teraz wybierasz kolumnę i patrzysz który rząd zareagował, co jednoznacznie identyfikuje klawisz. Zmieniasz kolumnę i znowu sprawdzasz w którym rzędzie coś się wcisnęło itd.
  • Poziom 12  
    Rozumiem rozumiem, nie wpadłbym na to sam :D Ogólnie to mam do zrobienia kalkulator i myślę czy rozwiązanie bez przerwania będzie wystarczające. Właściwie to mogę przecież zrobić tak, że program główny będzie cały czas sprawdzał czy jest wciśnięty przycisk, jeśli tak to wykonuje odpowiednią operację i wraca do głównego. Poza obsługą przycisków kalkulator nie potrzebuje wykonywać żadnych operacji, dlatego też przerwania będą tutaj chyba zbędne.

    Mam rację?
  • Moderator Mikrokontrolery Projektowanie
    Możesz tak zrobić, przy czym na przerwaniach łatwiej. Bo musisz jeszcze pomyśleć o eliminacji drgań styków, przerwania wywoływane z timera są do tego idealne.
  • Poziom 12  
    Tak, uwzględniam eliminację zarówno drgań styków jak ;)

    W międzyczasie chciałbym się trochę pochwalić wykonaniem mojej pierwszej płytki stykowej. Oto ona:

    [atmega8] klawiatura matrycowa - podłączenie
    Tutaj pokazane po "prasowaniu". Wykonałem to w sposób taki, że płytkę położyłem na deskę do prasowania, od góry nałożyłem wydruk i po prostu prasowałem. Za pierwszym razem słabo zeszło przy brzegach. Wyczyściłem płytkę i zrobiłem drugie podejście, w którym na koniec przechyliłem trochę żelazko i brzegiem dociskałem każdy punkt. Wyszło moim zdaniem bardzo dobrze co widzać na zdjęciu.


    [atmega8] klawiatura matrycowa - podłączenie
    Tutaj już wytrawiona płytka, cała miedź ładnie zeszła.

    Na pierwszy raz zrobiłem grube ścieżki, żeby wszystko ładnie wyszło (tak chyba łatwiej). W następnych będę już zapewne robił je węższe. Teraz płytkę jeszcze czeka wiercenie i zmycie tonera ze ścieżek.


    Edit: Zamieniłem kolejność zdjęć.
  • Użytkownik usunął konto  
  • Poziom 12  
    YYY switche są kwadratowe, nie prostokątne i tak też mam na układzie. Wciśnięcie powoduje zwarcie dwóch pierwszych pinów z dwoma drugimi i pod to została zaprojektowana płytka.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 12  
    Myślę, że tak jak jest będzie dobrze. Już jest wszystko pod to przygotowane i chciałbym też zrobić wszystko sam :D Jako, że teraz na pierwsze dni tygodnia sporo nauki to w środę będzie kontynuacja i budowa klawiatury do końca (lutowanie, podłączanie i testy). Z pewnością podzielę się efektami.

    Dzięki za pomoc, bez was bym chyba nie dał rady :)