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.

2-przewodowa klawiatura z użyciem timera 555

Kubald 15 Sie 2012 17:53 3999 12
  • 2-przewodowa klawiatura z użyciem timera 555

    Klawiatury są jednymi z najczęściej używanych interfejsów wejściowych w systemach mikroprocesorowych. W podstawowej konstrukcji przyciski klawiatury są ułożone w kolumnach i wierszach, aby ograniczyć ilość potrzebnych wyprowadzeń mikroprocesora. Dla przykładu, 12-przyciskowa klawiatura w układzie 4x3 „zużywa” 7 pinów mikrokontrolera. Kiedy przycisk zostaje zwarty, powstaje połączenie pomiędzy odpowiednim rzędem a kolumnom. Mikroprocesor musi skanować wszystkie rzędy/kolumny po kolei, aby stwierdzić, który przycisk został naciśnięty.

    2-przewodowa klawiatura z użyciem timera 555

    Poniżej przestawiono układ umożliwiający podłączanie klawiatury do mikroprocesora z wykorzystaniem jedynie dwu jego wyprowadzeń: jednego sygnalizującego fakt naciśnięcia klawisza i drugiego – przesyłającego informacje, który klawisz został wciśnięty. Układ bazuje na timerze 555 w konfiguracji multiwibratora astabilnego. Autor zapewnia, że ten sposób działa bardzo dobrze – do przetestowania wykorzystano układ z mikroprocesorem PIC16F628A i wyświetlaczem LCD, na którym pojawiają się informacje o naciśniętym klawiszu.

    Metoda bazuje na wykorzystaniu timera 555, którego częstotliwość wyjściowa opisana jest następującą zależnością:

    2-przewodowa klawiatura z użyciem timera 555

    Jeśli wartość R1 i C zostanie ustalona, częstotliwość impulsów będzie zależała od wartości R2. Dlatego też każdy klawisz w opisywanym rozwiązaniu powoduje przyłączenie różnych wartości R2 do układu i generowanie impulsów o różnych częstotliwościach. Mikroprocesor może ją określić i zdefiniować, który klawisz został naciśnięty:
    Kiedy przycisk zostanie zwarty, opornik R2 o określonej wartości włączany jest pomiędzy piny 7 (Discharge) i 6 (Treshold) timera 555, uzupełniając układ multiwibratora. Impulsy na wyjściu są zliczane przez procesor w czasie 100 ms. Procesor określa, który klawisz został naciśnięty poprzez zliczanie ilości przepełnień timera.

    Poniżej przedstawiono schemat układu i tabelę z wartościami R2 i odpowiadającymi im częstotliwościami impulsów.

    2-przewodowa klawiatura z użyciem timera 555
    2-przewodowa klawiatura z użyciem timera 555

    Ważne: dla bardziej niezawodnego działania należy użyć elementów o niższej tolerancji wartości w przypadku kondensatora C i rezystora R2. Autor w urządzeniu zastosował elementy o tolerancji 5%.

    W oryginalnym artykule autor szczegółowo omawia rolę poszczególnych elementów i sposób łączenia klawiatury z mikrokontrolerem. Kod dla procesora został napisany w języku C i jest dostępny do pobrania. Działanie kodu pokazano na przykładzie algorytmu:

    2-przewodowa klawiatura z użyciem timera 555

    Źródło


    Fajne! Ranking DIY
  • #2 15 Sie 2012 20:53
    karol17
    Poziom 15  

    No dobry patent , równie dobrze można by to chyba zrobić poprzez podłączenie do każdego switcha rezystora o różnych wartościach, i podciągnąć do zasilania, tylko ,że wymagało by to miernika który definiował by napięcia. Przy podzespołach o małej tolerancji można teoretycznie zrobić n guziczków na 2 kablach, tylko co jeśli trzeba nacisnąć kilka na raz :D ?

  • #3 15 Sie 2012 21:12
    SylwekK
    Poziom 29  

    Trochę niepraktyczne... 100ms to długo, już szybciej się to zrealizuje na drabince + ADC. Poza tym w takim rozwiązaniu w zasadzie bardzo utrudniona jest sensowna realizacja rozpoznania krótki/długi wcisk. Mimo to na pewno są sytuacje gdzie rozwiązanie zda egzamin (np. przy Attiny 2313, który to nie posiada ADC).

  • #4 15 Sie 2012 21:19
    Kubald
    Poziom 15  

    Taką klawiaturę można też podpiąć pod CPLD :-)
    Choć rzeczywiście możliwość odczytu naciśnięcia kilku klawiszy na raz albo długości wciskania klawisza jest ciężka do zrobienia...

  • #5 16 Sie 2012 00:26
    MaThiR
    Poziom 16  

    Proponuję problem wciśnięcia kilku klawiszy na raz rozwiązać lutując do przycisków rezystory o takiej oporności, aby przy każdej kombinacji dostawać inną, unikatową rezystancję wypadkową. Wtedy obsługę interesujących nas kombinacji (będą to konkretne częstotliwości lub napięcia) moglibyśmy obsłużyć bez problemu :)

  • #6 16 Sie 2012 00:44
    perlon
    Poziom 19  

    Super pomysł kolego MaThiR. Na moje oko dla klawiatury 4x3 tylko 4095 różnych rezystancji (częstotliwości) trzeba by było rozpoznać i obsłużyć.

  • #7 16 Sie 2012 01:29
    MaThiR
    Poziom 16  

    Na moje oko też :wink: Możesz dodać kombinajcę 4096, kiedy żaden nie jest wciśnięty. Czyli wbudowany w AVR'y 16-bitowy timer do pomiaru długości okresu sygnału z NE555 powinien wystarczyć.

  • #8 16 Sie 2012 12:31
    Kubald
    Poziom 15  

    Taka klawiaturka jest tylko do prostych rozwiązań, gdzie nie potrzeba obsługiwać dużej ilości przycisków/naciskania wielu na raz. Jak ktoś będzie miał potrzebę bardziej zaawansowanego rozwiązania, nie będzie się bawił w NE555 tylko sięgnie po gotowe rozwiązanie (i pewnie też tańsze) jak MAX7360 czy -7365...

  • #9 16 Sie 2012 12:42
    Urgon
    Poziom 36  

    AVE...

    74HC165 + 74HC595 + 64 diody + 64 microswitche i można zrobić klawiaturę 8x8 identyfikującą kombinacje klawiszy. Kolejne takie zestawy i klawiatura może być dowolnie duża. Zużyje to maksymalnie 6 pinów plus zasilanie, choć można pewno zegary i piny Enable multipleksować. Więc dałoby się zrobić taką klawiaturę za pomocą ośmiopinowego mikrokontrolera, który wysyłałby do głównego dane o klawiszach szeregowo...

  • #10 16 Sie 2012 21:07
    KJ
    Poziom 31  

    Najlepsze rozwiązanie 2/3 przewodowej klawiatury to dla mnie jest PCF8574P/AP lepsze nawet niż podpinanie klawiszy prosto pod piny uC. Dlaczego ? To proste - przy każdym naciśnięciu dowolnego klawisza podpiętego pod ten układ mamy od razu sygnał przerwania co z grubsza oznacza zwolnienie procesora ze sprawdzania czy został naciśnięty jakiś klawisz wystarczy tylko odczytać dane z i2c i wykonać odpowiednia akcję. Ktoś powie że odczytanie i2c trwa dłużej niż przemiatanie matrycy - owszem ale odczytuje tylko jak coś zostanie wciśnięte a nie cyklicznie tak jak odświeżanie normalnych klawiszy.

  • #13 17 Sie 2012 22:11
    Popak
    Moderator na urlopie...

    Ponieważ już istnieje taki sam temat, więc ten zamykam.

  Szukaj w 5mln produktów