Keypad dla Arduino


Ten artykuł przedstawi Ci krok po kroku – Jak podpiąć i obsłużyć Keypad dla Arduino

[slideshow_deploy id=’686′]

Na początek zaopatrz się w dowolny Keypad membranowy. W tym przykładzie użyłem standardowego 4×5, zamówionego z AliExpress

A więc na początku musimy ustalić który PIN jest za co odpowiedzialny, do większości Keypadów znajdziemy opis wyprowadzeń bez najmniejszego problemu w Google po wpisaniu np. “keypad 4×5 pinout”. Przykładowy znaleziony pinout:

Przejdźmy teraz do praktycznego przykładu.

1.Podłączamy po kolei piny od lewej strony do pinów: 2,3,4,5,6,7,8,9,10

2.Instalujemy bibliotekę za pomocą “zarządzania bibliotekami” wbudowanego w Arduino IDE

3.Wgrywanym na Arduino kod:

[pastacode lang=”c” manual=”%23include%20%3CKeypad.h%3E%2F%2Fdodanie%20biblioteki%0Aconst%20byte%20numRows%20%3D%205%3B%2F%2Fzdefiniowanie%20ilo%C5%9Bci%20wierszy%0Aconst%20byte%20numCols%20%3D%204%3B%2F%2Fzdefiniowanie%20ilo%C5%9Bci%20kolumn%0A%0Achar%20keymap%5BnumRows%5D%5BnumCols%5D%20%3D%2F%2Fzdefiniowanie%20mapy%20przycisk%C3%B3w%0A%7B%0A%09%7B%20’A’%2C%20’B’%2C%20’%23’%2C%20’*’%20%7D%2C%0A%09%7B%20’1’%2C%20’2’%2C%20’3’%2C%20’U’%20%7D%2C%0A%09%7B%20’4’%2C%20’5’%2C%20’6’%2C%20’D’%20%7D%2C%0A%09%7B%20’7’%2C%20’8’%2C%20’9’%2C%20’X’%20%7D%2C%0A%09%7B%20’L’%2C%20’0’%2C%20’R’%2C%20’E’%20%7D%0A%7D%3B%0A%0Abyte%20rowPins%5BnumRows%5D%20%3D%20%7B%2010%2C%209%2C%208%2C%207%2C%206%20%7D%3B%2F%2Fpiny%20do%20kt%C3%B3rych%20zosta%C5%82y%20podpi%C4%99te%20wiersze%0Abyte%20colPins%5BnumCols%5D%20%3D%20%7B%202%2C%203%2C%204%2C%205%20%7D%3B%2F%2Fpiny%20do%20kt%C3%B3rych%20zosta%C5%82y%20podpi%C4%99te%20kolumny%0A%0AKeypad%20myKeypad%20%3D%20Keypad(makeKeymap(keymap)%2C%20rowPins%2C%20colPins%2C%20numRows%2C%20numCols)%3B%2F%2Finicjalizacja%20keypada%0A%0Avoid%20setup()%0A%7B%0A%09Serial.begin(9600)%3B%2F%2Furuchomienie%20komunikacji%20z%20PC%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09char%20keypressed%20%3D%20myKeypad.getKey()%3B%2F%2Fzapisanie%20odczytanego%20przycisku%20do%20zmiennej%0A%09if%20(keypressed%20!%3D%20NO_KEY)%2F%2Fwarunek%20sprawdzaj%C4%85cy%20czy%20zosta%C5%82%20wci%C5%9Bni%C4%99ty%20przycisk%0A%09%7B%0A%09%09Serial.print(%22Wcisnieto%20przycisk%3A%20%22)%3B%2F%2Fwy%C5%9Bwietlenie%20napisu%0A%09%09Serial.println(keypressed)%3B%2F%2Fwy%C5%9Bwietlenie%20wci%C5%9Bni%C4%99tego%20przycisku%0A%09%7D%0A%7D” message=”” highlight=”” provider=”manual”/]

W monitorze portu szeregowego po wciśnięciu przycisku powinniśmy zobaczyć:

Jeśli wciskając przycisk dostajesz informację że został wciśnięty inny przycisk niż ten wciśnięty oznacza to że masz błędnie podpięty keypad.

A teraz zaprezentuję Ci drugi praktyczny przykład który pokaże Ci w jaki sposób możesz wykonać coś za pomocą wciśnięcia przycisku.

[pastacode lang=”c” manual=”%23include%20%3CKeypad.h%3E%0Aconst%20byte%20numRows%20%3D%205%3B%0Aconst%20byte%20numCols%20%3D%204%3B%0A%0Achar%20keymap%5BnumRows%5D%5BnumCols%5D%20%3D%0A%7B%0A%09%7B%20’A’%2C%20’B’%2C%20’%23’%2C%20’*’%20%7D%2C%0A%09%7B%20’1’%2C%20’2’%2C%20’3’%2C%20’U’%20%7D%2C%0A%09%7B%20’4’%2C%20’5’%2C%20’6’%2C%20’D’%20%7D%2C%0A%09%7B%20’7’%2C%20’8’%2C%20’9’%2C%20’X’%20%7D%2C%0A%09%7B%20’L’%2C%20’0’%2C%20’R’%2C%20’E’%20%7D%0A%7D%3B%0A%0Abyte%20rowPins%5BnumRows%5D%20%3D%20%7B%2010%2C%209%2C%208%2C%207%2C%206%20%7D%3B%0Abyte%20colPins%5BnumCols%5D%20%3D%20%7B%202%2C%203%2C%204%2C%205%20%7D%3B%0A%0AKeypad%20myKeypad%20%3D%20Keypad(makeKeymap(keymap)%2C%20rowPins%2C%20colPins%2C%20numRows%2C%20numCols)%3B%0A%0Aboolean%20zmienna%20%3D%20false%3B%0A%0Avoid%20setup()%0A%7B%0A%09Serial.begin(9600)%3B%0A%09pinMode(13%2C%20OUTPUT)%3B%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09char%20keypressed%20%3D%20myKeypad.getKey()%3B%0A%09if%20(keypressed%20!%3D%20NO_KEY)%0A%09%7B%0A%09%09Serial.print(%22Wcisnieto%20przycisk%3A%20%22)%3B%0A%09%09Serial.println(keypressed)%3B%0A%0A%09%09if%20(keypressed%20%3D%3D%20’A’)%2F%2Fzawarto%C5%9B%C4%87%20tego%20ifa%20wykona%20si%C4%99%20po%20wci%C5%9Bni%C4%99ciu%20przycisku%20zdefiniowanego%20jako%20%22A%22%0A%09%09%7B%0A%09%09%09Serial.println(%22Tutaj%20mozesz%20dac%20dowolny%20kod%20ktory%20sie%20wykona%20po%20wcisnieciu%20wybranego%20przycisku%20%3A)%22)%3B%0A%09%09%7D%0A%0A%09%09if%20(keypressed%20%3D%3D%20’E’)%2F%2Fzawarto%C5%9B%C4%87%20tego%20ifa%20wykona%20si%C4%99%20po%20wci%C5%9Bni%C4%99ciu%20przycisku%20zdefiniowanego%20jako%20%22E%22%0A%09%09%7B%0A%09%09%09if%20(zmienna%20%3D%3D%20false)%2F%2Fje%C5%9Bli%20zmienna%20jest%20false%20to%20wykona%20si%C4%99%20zawarto%C5%9B%C4%87%20ifa%0A%09%09%09%7B%0A%09%09%09%09Serial.println(%22Uruchomiono%22)%3B%0A%09%09%09%09digitalWrite(13%2C%20HIGH)%3B%2F%2Fzapali%20diod%C4%99%20wbudowan%C4%85%20na%20Arduino%0A%09%09%09%09zmienna%20%3D%20true%3B%2F%2Fzmieni%20zmienn%C4%85%20z%20false%20na%20true%0A%09%09%09%7D%0A%09%09%09else%2F%2Fje%C5%9Bli%20zmienna%20nie%20jest%20false%20wykona%20si%C4%99%20zawarto%C5%9B%C4%87%20else%0A%09%09%09%7B%0A%09%09%09%09Serial.println(%22Wylaczono%22)%3B%0A%09%09%09%09digitalWrite(13%2C%20LOW)%3B%2F%2Fzgasi%20diod%C4%99%20wbudowan%C4%85%20na%20Arduino%0A%09%09%09%09zmienna%20%3D%20false%3B%2F%2Fzmieni%20zmienn%C4%85%20z%20true%20na%20false%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%7D” message=”” highlight=”” provider=”manual”/]

Podczas wciskania odpowiednich przycisków w monitorze portu szeregowego powinniśmy zobaczyć:

Oraz na naszym Arduino powinniśmy zobaczyć efekt gaśnięcia oraz zapalania diody:

  

Poprzednia informacja Wesołych świąt!
Kolejna informacja Arduino jako klawiatura do komputera

Brak komentarzy

Zostaw odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *