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.
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ą:
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.
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:
Źródło
Fajne? Ranking DIY
