I_R_W15_M03 Przykładowe projekty
W tym e‑materiale zbudujemy zamek szyfrowy. W projekcie użyjemy szesnastu przycisków (tactswitch) oraz trójkolorowej diody RGB ze wspólną katodą.
Podpięcie szesnastu przycisków do Arduino Uno może być nieco utrudnione przez brak wystarczającej liczby wejść. W naszym projekcie zastosujemy tzw. klawiaturę matrycową.
Klawiatura matrycowa
Zazwyczaj każdy przycisk podłączony do Arduino zajmuje jedno wejście. Przy kilku przyciskach nie jest to problem, ale co w sytuacji, gdy tych przycisków mamy aż 16? Przykładowo, w celu wpisania zwykłego kodu pin musimy mieć do dyspozycji aż 10 przycisków dla samych tylko cyfr od 0 do 9, a przecież potrzebne są jeszcze przyciski do resetowania hasła i jego zatwierdzania. Podłączanie każdego z przycisków byłoby z pewnością dość kłopotliwe, a niekiedy wręcz niemożliwe.
Rozwiązaniem w takich sytuacjach jest klawiatura matrycowa, dzięki której możliwe jest zmniejszenie liczby potrzebnych wejść. W tego typu klawiaturze przyciski połączone są w kolumny oraz wiersze, tworząc matrycę połączeń.
Budowa klawiatury 4x3

Budowa klawiatury 4x4

Jak widać na powyższych schematach, matryca 4x3 umożliwia podłączenie 12 przycisków za pomocą siedmiu linii danych, a dzięki matrycy 4x4 podłączymy 16 przycisków za pomocą ośmiu linii danych.
My zajmiemy się tym drugim wariantem, czyli matrycą 4x4, którą wykorzystamy do budowy naszego zamka kodowego. Wciskając na klawiaturze dowolny przycisk, zwieramy jedną kolumnę i jeden wiersz. Przykładowo, kiedy wciskamy klawisz 0, zwieramy kolumnę P6 z wierszem P4. Jeśli z kolei chcemy ustalić, który przycisk został wciśnięty, wystarczy sprawdzić połączenia między wierszami P1‑P4 a kolumnami P5‑P8.
Budowa układu z klawiaturą matrycową
Co będzie nam potrzebne:
klawiatura matrycowa 4x4,
przewody połączeniowe męsko‑żeńskieprzewody połączeniowe męsko‑żeńskie,
przewody połączeniowe męsko‑męskieprzewody połączeniowe męsko‑męskie,
płytka Arduino Uno,
trójkolorowa dioda RGBdioda RGB ze wspólną katodąwspólną katodą,
dwa rezystory 1 komega,
jeden rezystor 220 omega,
kabel USB typu A‑B do podłączenia do komputera.
Na potrzeby naszego zadania użyjemy prostszej wersji klawiatury matrycowej – wygląda ona tak, jak na poniższym zdęciu.

Do pracy z Arduino Uno będziemy potrzebowali bibliotekibiblioteki Keypad, która ułatwi nam pracę nad zamkiem.
Pobierz bibliotekę. Pamiętaj o sprawdzeniu, czy jest to najaktualniejsza wersja.
Po pobraniu biblioteki musimy zainstalować ją w Arduino IDE. Aby to zrobić, uruchamiamy program, klikamy w zakładkę Szkic, najeżdżamy kursorem na Dołącz bibliotekę i z rozwijanej listy wybieramy Dodaj bibliotekę .ZIP...

Następnie w oknie dialogowym szukamy naszego pliku z biblioteką, zaznaczamy go i klikamy przycisk Open.

Po poprawnym zainstalowaniu biblioteki na pasku informacji wyświetli się napis o powodzeniu instalacji nowej biblioteki.

Sprawdzamy, czy nasza biblioteka znajduje się na liście. Klikamy Szkic, najeżdżamy kursorem na Dołącz bibliotekę i szukamy na liście naszej biblioteki Keypad.

Zanim przejdziemy do budowy naszego zamka, napiszemy program testowy, który będzie sprawdzał, czy i jaki przycisk został wciśnięty. W tym celu posłużymy się monitorem portu szeregowegomonitorem portu szeregowego. Na początku podłączmy naszą klawiaturę do Arduino Uno, korzystając z pinów od 2 do 9. Pamiętajmy o kolejności podpięcia pinów – na tym etapie jest to bardzo ważne.

Klawiaturę z Arduino Uno łączymy za pomocą przewodów męsko‑żeńskich.

Kiedy wszystkie przewody zostały prawidłowo podpięte, przechodzimy do programowania. Zaczynamy od dodania biblioteki.
Następnie podajemy informację, z ilu wierszy i kolumn zbudowana jest nasza klawiatura.
Teraz przypisujemy poszczególne piny Arduino Uno do wierszy i kolumn.
W tym momencie przechodzimy do stworzenia mapy naszej klawiatury za pomocą tablicy dwuwymiarowej:
Ostatnim krokiem konfiguracji jest utworzenie nowego obiektu Keypad – nazwijmy go MatrycaPrzyciskow.
W pętli setup() uruchamiamy monitor portu szeregowego.
Natomiast w pętli loop() tworzymy zmienną typu char odpowiadającą za przechowywanie znaków i przypisujemy jej wartość odczytaną z klawiatury. W tym celu musimy wywołać polecenie MatrycaPrzyciskow.getKey(), a otrzymany w ten sposób znak wysyłamy za pomocą UART do komputera.
Połączmy teraz Arduino z komputerem, wgrajmy nasz program i sprawdźmy w monitorze portu szeregowego czy prawidłowo podpięliśmy i przypisaliśmy wartości odpowiednim przyciskom. Po wciśnięciu wybranego klawisza powinna wyświetlić się odpowiednia wartość – ta, którą przypisaliśmy mu w naszej tablicy.

Jeśli znaki różnią się od tych zdeklarowanych w tablicy, należy sprawdzić podłączenie klawiatury.