Klawiatura membranowa 4x4

Klawiatura membranowa 4x4

Klawiatury membranowe to najlepszy sposób interakcji z projektami zbudowanymi przy użyciu płytek Arduino i nie tylko. Za pomocą klawiatury można nawigować po menu, wprowadzać kody, hasła lub można sprawować kontrolę nad wykonywanym przez Arduino programem. Takie klawiatury mają zastosowanie np. w systemach zabezpieczających, gdzie zachodzi potrzeba wprowadzania pinu czy wybierania ustawień z menu.

Parametry modułu

  • Rozmiar modułu: 69 x 77 mm

  • Sterowanie: 8 pinowe złącze goldpin

  • Ilość klawiszy: 16

  • Napięcie zasilania: max 35V

  • Maksymalny prąd: 100 mA, 1W

  • Żywotność klawiszy: >1 mln naciśnięć

  • Opóźnienie zwolnienia klawisza: 1 ms

Opis działania modułu

W zasadzie każda klawiatura membranowa grupuje swoje przyciski w wiersze i kolumny co w przypadku klawiatury 4x4 może nam zaoszczędzić 8 pinów w Arduino. Gdyby zamiast klawiatury membranowej zastosować do każdego znaku 1 fizyczny przycisk podłączany do jednego pinu w Arduino musielibyśmy wykorzystać aż 16 pinów, a tak wystarczy 8. Aby jednak wykryć, który przycisk klawiatury został wciśnięty proces ten nie już taki prosty jak w przypadku zwykłego przycisku. W programie należy cyklicznie podawać sygnał wysoki kolejno na każdą kolumnę, a następnie po kolei sprawdzać stan na pinach wierszy. Jeśli na którymś z pinów wierszy pojawi się sygnał wysoki oznacza to, że przycisk na przecięciu tego wiersza i tej kolumny został wciśnięty.

Stosując powyższą zasadę działania można samemu napisać program obsługi takiej klawiatury wykorzystując do tego dwie pętle programowe jednak jednak łatwiej skorzystać z gotowych bibliotek obsługi klawiatur membranowych jakich w Internecie można znaleźć wiele. Dodatkowo takie biblioteki posiadają również wiele zaawansowanych funkcji.

Sposób podłączenia modułu

Do podłączenia klawiatury membranowej 4x4 potrzeba 8 wolnych pinów w Arduino. Jeśli projekt jest niezbyt rozbudowany nie jest to żaden problem gdyż w Arduino mamy aż 20 pinów. Problem może się pojawić dopiero wtedy gdy do Aduino jednocześnie będziemy chcieli podłączyć wyświetlacz LCD bez adaptera I2C oraz inne moduły i może się okazać, że mamy zbyt mało pinów do podłączenia wszystkiego jednocześnie. Takiego problemu oczywiście nie będzie gdy zastosujemy Arduino Mega lub Due bo tam do dyspozycji mamy aż 70 pinów. Możliwe jest podłączenie klawiatury do Arduino za pomocą tylko jednego pinu analogowego ale o tym będzie osobny artykuł.

Piny klawiatury membranowej są liczone od prawej strony czyli skrajny prawy pin ma numer 1, a skrajny lewy pin ma numer 8. W zasadzie do których pinów w Arduino podłączymy klawiaturę nie ma absolutnie żadnego znaczenia ponieważ sposób podłączenia konfigurowany jest programowo. Dla lepszej wygody najlepiej po prostu podłączyć piny klawiatury po kolei zaczynając od pinu 1 do kolejnych pinów w Arduino. W przykładzie poniżej klawiatura membranowa 4x4 będzie podłączona w następujący sposób:

Pin klawiatury -> Pin Arduino

1 -> PIN 2
2 -> PIN 3
3 -> PIN 4
4 -> PIN 5
5 -> PIN 6
6 -> PIN 7
7 -> PIN 8

8 -> PIN 9

Przykładowy program Arduino IDE

Aby obsłużyć klawiaturę membranową w swoim projekcie najłatwiej wykorzystać bibliotekę o nazwie Keypad.h, którą należy doinstalować do Arduino IDE gdyż standardowo nie jest ona zainstalowana. Bibliotekę można pobrać 📂 >TUTAJ< lub zainstalować za pomocą menedżera bibliotek. Biblioteka ta obsługuje klawiatury membranowe z dowolną ilością klawiszy zorganizowanych w wiersze i kolumny. Aby określić ile kolumn i wierszy posiada nasza klawiatura należy ręcznie wpisać wartości stałych programowych ROWS i COLS:

Następnie musimy przypisać każdemu klawiszowi znak, który otrzymamy w wyniku wciśnięcia, któregoś z klawiszy na klawiaturze membranowej. Znaki te zapisane są w tablicy Keys w taki sposób jak widzimy je na klawiszach klawiatury:

Następnie określamy piny wierszy oraz piny kolumn jak one fizycznie zostały podłączone do Arduino. Numery pinów do których zostały podłączone wiersze zapisane są w tablicy rowsPins, a numery kolumn w tablicy colPins. Jeśli piny klawiatury zostały podłączone do Arduino w zupełnie inny sposób niż to się zazwyczaj robi np. ze względu na to, że część pinów została już wykorzystana przez inne moduły tutaj właśnie mamy możliwość ustawienia właściwych pinów do których zostały podłączone piny wierszy oraz kolumn klawiatury.

Należy zauważyć, że piny kolumn i wierszy należy wpisywać malejąco pamiętając o tym, że piny te ponumerowane są jak na rysunku od prawej do lewej.

Powyżej przedstawiony jest program, który odczytuje wciśnięty klawisz z klawiatury membranowe 4x4 i wypisuje jego znak w Monitorze portu szeregowego.

Monitor ten można włączyć kombinacją klawiszy Ctrl+Shift+M lub wciskając ikonę lupy znajdującą się po prawej stronie programu okna Arduino IDE.

Kod przykładowego programu obsługi klawiatury membranowej 4x4:

Schemat podłączenia