Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek 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 7836 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
  • #2 31 Lip 2009 19:42
    koza18
    Poziom 13  

    No, pinu Data Aviable wręcz należy używać. Jak inaczej wykryć naciśnięcie klawisza o numerze 0?

  • #3 31 Lip 2009 19:49
    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 31 Lip 2009 20:43
    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 31 Lip 2009 21:22
    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 31 Lip 2009 21:34
    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 31 Lip 2009 21:54
    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 02 Sie 2009 00:51
    finch
    Poziom 20  

    Co wy mówicie, 10 sekund na TME i JEST ale cenę....przemiliczę.

  • #10 02 Sie 2009 12:30
    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 02 Sie 2009 12:36
    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 02 Sie 2009 14:55
    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ę...