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

100 przyciskowa klawiatura matrycowa

20 Mar 2013 08:23 1665 8
  • Poziom 26  
    Witam wszystkich Elektrodowiczów!

    Buduję urządzenie, które wykorzystuje dużą liczbę przycisków i w tym celu chcę zrobić klawiaturę matrycową. Ponieważ mam tych przycisków ponad 100 (jeszcze dokładnie nie wiem ile, bo to okaże się w niedługim czasie), to chcę wykonać matrycę 10 wejść na 10 wyjść (no to akurat dla przypadku dokładnie 100 przycisków). I teraz chciałbym uniknąć montowania 100 sztuk pojedynczych diod np. w obudowach miniMELF czy im podobnych i zastąpić je jakimś jednym zgrabnym układem scalonym. Co Koledzy możecie mi polecić ze swojego doświadczenia?

    Pozdrawiam,
    Kuba
  • Computer Controls
  • Poziom 21  
    Witam.
    Jak klawiatura będzie się komunikowała z otoczeniem? Czy klawisze będą miały priorytety i kombinacje? Gdzie znajdować się będzie oprogramowanie funkcji klawiatury? Żeby koledze doradzić potrzebujemy więcej informacji dotyczących samego urządzenia i funkcji przez nie spełnianych.
    Pozdrawiam
  • Computer Controls
  • Poziom 26  
    adamowicz napisał:
    Jak klawiatura będzie się komunikowała z otoczeniem?

    Czy Kolega adamowicz może sprecyzować swoje pytanie?

    adamowicz napisał:
    Czy klawisze będą miały priorytety i kombinacje?

    Klawisze nie będą miały priorytetów. Wszystkie będą posiadały ten sam i tak samo ważny priorytet.
    Klawisze będą mogły występować w różnych kombinacjach np. po kilka klawiszy na raz lub dołączanych kolejno lub/i zwalnianych kolejno.

    adamowicz napisał:
    Gdzie znajdować się będzie oprogramowanie funkcji klawiatury?

    Oprogramowanie funkcjonalne będzie znajdowało się w mikrokontrolerze ARM 32-bit Cortex-M3.
  • Poziom 21  
    Precyzując. Rs232, I2C, transmisja równoległa? Czy kolega przewiduje wizualizację wciśnięcia klawiszy?
    Pozdrawiam
  • Poziom 26  
    adamowicz napisał:
    Precyzując. Rs232, I2C, transmisja równoległa? Czy kolega przewiduje wizualizację wciśnięcia klawiszy?


    To, w jaki sposób klawiatura będzie podłączona fizycznie do mikrokontrolera, jest mi zupełnie obojętne. Wiadomo, że im bardziej sprytnie, tym lepiej.
    Wizualizacji nie przewiduję. W sumie o niej nei myślałem, ale to sprawa dalszoplanowa.
  • Poziom 21  
    Jeżeli nie ma specjalnych wymagań to rozwiązaniem w miarę elastycznym i sprytnym będzie wykonanie klawiatury na małym uC AVR. Komunikacja pozostaje sprawą otwartą (oprogramowanie), wszystkie inne funkcje też kolega może zrealizować programowo. Osobiście najczęściej w takich wypadkach (większa ilość klawiszy) stosuję klawiaturę PC gdzie kody poszczególnych klawiszy sa znane i komunikacja dobrze opisana.
    Pozdrawiam
  • Poziom 26  
    adamowicz napisał:
    Jeżeli nie ma specjalnych wymagań to rozwiązaniem w miarę elastycznym i sprytnym będzie wykonanie klawiatury na małym uC AVR.

    Klawiatura jest jednym z najmniej wymagających peryferiów, więc dalsza konstrukcja i wykorzystanie uC wraz z oprogramowaniem nie jest mi obce.
    Mam tu na myśli jedynie konstrukcję samej matrycowej klawiatury, a nie całego urządzenia.
    adamowicz napisał:
    Osobiście najczęściej w takich wypadkach (większa ilość klawiszy) stosuję klawiaturę PC gdzie kody poszczególnych klawiszy sa znane i komunikacja dobrze opisana

    Zastosowanie klawiatury PC jest nie możliwe.
  • Moderator Programowanie
    Kubbaz napisał:
    Zastosowanie klawiatury PC jest nie możliwe.

    Więc może nie całą klawiaturę, ale układ kodujący do PS/2. A to już łatwo oprogramować w mikrokontrolerze.
    Oszczędność czasu i 20 portów. No 18, bo ze 2 będą potrzebne do odczytu.
  • Specjalista elektronik
    Jak masz matrycę 10 linii wejściowych i 10 linii wyjściowych, a każdy klawisz zwiera
    którąś linię wejściową z którąś wyjściową (i każdy inną ich kombinację), to można
    rozpoznać, który klawisz jest wciśnięty, podając napięcie kolejno na wszystkie linie
    wejściowe i sprawdzając je na wyjściowych - jeśli jest wciśnięty tylko jeden klawisz.

    Przy wciśnięciu dwóch klawiszy może dojść do zwarcia linii wejściowych, które są
    wyjściami z jakiegoś układu - powinny one być odporne na takie zwarcia, i również
    wtedy dawać sygnał, który da się rozpoznać na liniach wyjściowych - to pozwala
    rozpoznać, które dwa klawisze są wciśnięte nawet, gdy mają wspólną linię.

    Gorzej przy trzech i więcej - jeśli zostaną wciśnięte trzy klawisze zwierające linie
    Ia-Oa, Ia-Ob, Ib-Ob, to wynik jest taki sam, jakby były Ia-Oa, Ia-Ob, Ib-Oa, więc
    nie zawsze przy trzech wciśniętych klawiszach da się rozpoznać, które to są.

    Jeśli to nie przeszkadza - wystarczy zadbać o wyjścia na klawiaturę odporne
    na zwarcia (np. otwarty kolektor i opornik podciągający do zasilania).
    Jeśli potrzebne jest rozpoznawanie dowolnej kombinacji klawiszy - najprościej
    z każdym przełącznikiem połączyć szeregowo diodę.

    Klawiatura od PC zawiera mikrokontroler, chyba na ogół nie ma diod, czyli
    istnieją kombinacje po trzy klawisze, które nie są prawidłowo rozpoznawane
    - producenci starają się, by nie dotyczyło to klawiszy, co do których można
    spodziewać się, że będą wciskane jednocześnie przy normalnej pracy.
    Ale jak ktoś się uprze i sprawdzi dokładnie, to potrafi wykryć błędy.