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.

Prosty sposób odczytu klawiatury 4x4

Defenestrator 31 Lip 2009 11:46 7938 14
  • Prosty sposób odczytu klawiatury 4x4

    Odczytywanie stanu klawiatury przy pomocy mikrokontrolera nie jest niczym odkrywczym, lecz potrafi sprawić wiele problemów gdy mamy do dyspozycji za mało pinów I/O lub gdy mikrokontroler musi szybko wykonywać inne zadania. W tym projekcie zaprezentowano dwa podejścia do tego problemu: klasyczne, polegające na wykorzystaniu 4+4 pinów avr-a i oparte o specjalny układ scalony: MM74C922. Podłącza się go bezpośrednio do rzędów i kolumn klawiatury, a stan jego 4 linii wyjściowych odpowiada kodowi BCD wciśniętego klawisza. Poza wyjściem BCD układ posiada również pin IRQ, który może posłużyć do generowania przerwania przy każdym naciśnięciu klawisza. Zastosowanie tego scalaka pozwala znacznie uprościć obsługę klawiatury, co może okazać się pomocne szczególnie dla początkujących.

    Źródło


    Prosty sposób odczytu klawiatury 4x4 Prosty sposób odczytu klawiatury 4x4

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Defenestrator
    Poziom 14  
    Offline 
    Defenestrator napisał 151 postów o ocenie 78, pomógł 0 razy. Jest z nami od 2007 roku.
  • #2
    koza18
    Poziom 14  
    No, pinu Data Aviable wręcz należy używać. Jak inaczej wykryć naciśnięcie klawisza o numerze 0?
  • #3
    zbyrek
    Poziom 23  
    Prościej zrobić klawiaturę działającą na ADC. Każdy przycisk ma rezystor z inną wartością, całość pod 5V i odczytywać na ADC wartość, i to wykorzystuje się tylko jeden pin. Gorzej jak mikrokontroler nie ma ADC.
  • #4
    r2d2004
    Poziom 31  
    Witam!

    :arrow: Kolego zbyrek nie musi być zaraz ADC (ten raczej wykorzystuje się do poważniejszych zadań ;-) ) - wystarczy wbudowany do uPC komparator (pomiar czasu ładowania kondensatora) i taką klawiaturę 16 przyciskową (ale nie może to być klawiatura matrycowa 4x4) można obsłużyć tylko przez jedną linię I/O mikrokontrolera. Nie mniej takie proste rozwiązania hardware'owe będą wymagały bardziej rozbudowanego softu do obsługi klawiatury (coś za coś).

    Pozdrawiam
  • #5
    zbyrek
    Poziom 23  
    Mówiłem tu o sposobie, który byłby równie prosty softowo. :wink: Szczególnie, że większość mikrokontrolerów ma ADC, które można bez przeszkód wykorzystać bez zabawa z programem i liczeniem czasów, do zrobienia takiego zamka szyfrowego wystarczy malutki attiny45. Powracając do tematu, to pomysłowe rozwiązanie, jednak ja jak już wspominałem wolałbym użyć ADC.
  • #6
    Paweł Es.
    Pomocny dla użytkowników
    Rozwiązanie może i dobre tyle, że układ scalony nie wystepuje praktycznie w naszej strefie klimatycznej :(
  • #7
    zbyrek
    Poziom 23  
    Właśnie też to zauważyłem, i zastanawiałem się czy byłby wysoki koszt sprowadzania, i wychodzi na to, iż taniej samemu byłoby taki zrobić na innym mikrokontrolerze...
  • #8
    finch
    Poziom 20  
    Co wy mówicie, 10 sekund na TME i JEST ale cenę....przemiliczę.
  • #10
    finch
    Poziom 20  
    poszukaj, wszyscy będę Ci wdzięczni ;)
    A tak na poważnie to przesiałem gdzieś swój katalog scalaków i zamienników więc nie pomogę.
  • #11
    Karol966
    Poziom 30  
    Witam, a jaki problem jest w tym aby zamiast kupowania drogiego układu MM74C922 kupić np Attiny2313 i go przeznaczyć na obsługę takiej klawiatury? To żaden problem napisać soft do takiego zadania a koszt kostki ok 4zł ( w zależności od sklepu :p )
  • #12
    Urgon
    Poziom 36  
    AVE...

    A czy Attiny2313 ma odpowiednią ilość pinów I/O? Trzaby 8 na obsługę klawiatury 4x4 i 1-4 na połączenia zależnie od tego, czy użyje się komunikacji szeregowej asynchronicznej, czy SPI, I2C czy zwykłego kodowania BCD. Zresztą ja i tak użyłbym jakiegoś PICa 12F lub 16F...

    Miałem kiedyś katalog układów ULY i podobnych - to bodaj polskie i radzieckie scalone, cyfrowe układy TTL i CMOS. Niestety, brat gdzieś mi to zgubił lub oddał. A przydałoby się...