I_R_W15_M03 Przykładowe projekty
Naszym zadaniem będzie zbudowanie zamka szyfrowego. 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ń.
Najczęściej spotykamy dwa rodzaje klawiatur membranowych: 4×3 oraz 4×4.
Klawiatura 4×3 ma 12 przycisków ułożonych w czterech wierszach i trzech kolumnach. Znajdują się na niej cyfry od 0 do 9 oraz znaki * i #. Do podłączenia wykorzystuje 7 przewodów: cztery dla wierszy i trzy dla kolumn.

Klawiatura 4×4 ma 16 przycisków ułożonych w czterech wierszach i czterech kolumnach. Oprócz cyfr oraz znaków * i # posiada także przyciski A, B, C i D. Wymaga 8 przewodów: czterech dla wierszy i czterech dla kolumn.

Obie klawiatury działają w podobny sposób. Arduino sprawdza kolejne wiersze i kolumny, aby rozpoznać, który przycisk został naciśnięty.
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.
Budowa układu z klawiaturą matrycową
Na potrzeby naszego zadania użyjemy prostszej wersji klawiatury matrycowej – wygląda ona tak, jak na poniższym zdjęciu.

Do pracy z Arduino Uno będziemy potrzebowali biblioteki, która ułatwi nam pracę nad zamkiem szyfrowym.
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 szyfrowego, 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 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 zostaną 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.