Spisu treści:
- Krok 1: Pierwsze kroki
- Krok 2: Korzystanie z 12-cyfrowej klawiatury
- Krok 3: Korzystanie z 16-cyfrowej klawiatury
- Krok 4: Przykładowy projekt – System dostępu PIN
Wideo: Korzystanie z klawiatur numerycznych z Arduino: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Klawiatury numeryczne mogą stanowić prostą alternatywę dla użytkownika końcowego dla różnych interfejsów dla Twoich projektów. Lub jeśli potrzebujesz wielu przycisków, mogą one zaoszczędzić sporo czasu w zakresie konstrukcji. Przejdziemy przez ich połączenie, korzystając z biblioteki Arduino, a następnie zakończymy przydatnym szkicem przykładowym.
Krok 1: Pierwsze kroki
Bez względu na to, skąd czerpiesz swoje klawiatury, upewnij się, że możesz otrzymać arkusz danych – ponieważ ułatwi to życie podczas ich okablowania. Na przykład - obraz w tym kroku.
Arkusz danych jest ważny, ponieważ informuje, które styki lub złącza na klawiaturze są przeznaczone dla wierszy i kolumn. Jeśli nie masz arkusza danych – będziesz musiał ręcznie określić, które kontakty są dla wierszy i kolumn.
Można to zrobić za pomocą funkcji ciągłości multimetru (brzęczyka). Zacznij od umieszczenia jednej sondy na pinie 1, drugiej sondy na pinie 2 i naciskaj kolejno klawisze. Zanotuj, kiedy przycisk zakończy obwód, a następnie przejdź do następnej pinezki. Wkrótce dowiesz się, która jest która. Na przykład na przykładowym manipulatorze piny 1 i 5 są dla przycisku „1”, 2 i 5 dla „4”, itd…
W tym momencie pobierz i zainstaluj bibliotekę Arduino manipulatora. Teraz zademonstrujemy, jak używać obu klawiatur na prostych przykładach.
Krok 2: Korzystanie z 12-cyfrowej klawiatury
Do wyświetlania użyjemy małej czarnej klawiatury, kompatybilnej z Arduino Uno i wyświetlacza LCD z interfejsem I2C. Jeśli nie masz wyświetlacza LCD, zawsze możesz wysłać tekst do monitora szeregowego.
Podłącz wyświetlacz LCD, a następnie podłącz klawiaturę do Arduino w następujący sposób: Wiersz klawiatury 1 do Arduino digital 5Wiersz klawiatury 2 do Arduino digital 4Wiersz klawiatury 3 do Arduino digital 3Klawiatura rząd 4 do Arduino digital 2Kolumna klawiatury 1 do Arduino digital 8Kolumna klawiatury 2 do Arduino digital 7Keypad column 3 do Arduino digital 6 Jeśli twoja klawiatura różni się od naszej, zwróć uwagę na linie na szkicu z:
// definicja typu klawiatury
Jak trzeba zmienić liczby w tablicach rowPins[ROWS] i colPins[COLS]. Wprowadzasz cyfrowe numery pinów połączone odpowiednio z rzędami i kolumnami klawiatury.
Ponadto klawisze tablicy przechowują wartości wyświetlane na wyświetlaczu LCD po naciśnięciu określonego przycisku. Możesz zobaczyć, że dopasowaliśmy go do używanej fizycznej klawiatury, ale możesz ją zmienić na cokolwiek potrzebujesz. Ale na razie wprowadź i prześlij następujący szkic, gdy będziesz zadowolony z przydziałów numerów wierszy/pinów:
/* Klawiatura numeryczna i wyświetlacz LCD I2C https://tronixstuff.com Wykorzystuje bibliotekę klawiatur dla Arduino https://www.arduino.cc/playground/Code/Keypad autorstwa Marka Stanleya, Alexandra Breviga */
#include "Klawiatura.h"
#include "Wire.h" // dla LCD I2C #include "LiquidCrystal_I2C.h" // dla modułu LCD magistrali I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // ustaw adres LCD na 0x27 dla 16-znakowego i 2-wierszowego wyświetlacza
// definicja typu klawiatury
stały bajt ROWS = 4; //cztery wiersze const byte COLS = 3; //trzy kolumny znaków klucze[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
bajt wierszPin[ROWS] = {
5, 4, 3, 2}; //połączenie z pinoutami wiersza klawiatury byte colPins[COLS] = { 8, 7, 6}; // połącz się z pinoutami kolumn klawiatury
liczba int=0;
Klawiatura klawiatury = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
pusta konfiguracja()
{ lcd.init(); // zainicjuj lcd lcd.backlight(); // włącz podświetlenie LCD }
pusta pętla()
{ klawisz znaku = klawiatura.getKey(); if (klucz != NO_KEY) { lcd.print(key); liczyć++; if (liczba==17) { lcd.clear(); liczba=0; } } }
A wyniki szkicu są pokazane na filmie. Teraz możesz zobaczyć, jak naciśnięcia przycisków można przełożyć na dane do użycia w szkicu. Powtórzymy teraz tę demonstrację z większą klawiaturą.
Krok 3: Korzystanie z 16-cyfrowej klawiatury
Użyjemy większej klawiatury 4×4, kompatybilnej z Arduino Uno i dla odmiany wyświetlacza LCD I2C firmy Akafugu do celów wyświetlania. Ponownie, jeśli nie masz wyświetlacza LCD, zawsze możesz wysłać tekst do monitora szeregowego. Podłącz wyświetlacz LCD, a następnie podłącz klawiaturę do Arduino w następujący sposób:
- Rząd klawiatury 1 (pin ósmy) do Arduino digital 5
- Rząd 2 klawiatury (pin 1) do Arduino digital 4
- Rząd klawiatury 3 (pin 2) do Arduino digital 3
- Rząd klawiatury 4 (pin 4) do Arduino digital 2
- Kolumna klawiatury 1 (pin 3) do Arduino digital 9
- Kolumna klawiatury 2 (pin 5) do Arduino digital 8
- Kolumna klawiatury 3 (pin 6) do Arduino digital 7
- Kolumna klawiatury 4 (pin 7) do Arduino digital 6
Przejdźmy teraz do szkicu – zauważ, jak dostosowaliśmy się do większej klawiatury numerycznej: dodatkowa kolumna w tablicy klucze znakówdodatkowy pin w tablicy colPinsi bajt COLS = 4.
/* Klawiatura numeryczna i wyświetlacz LCD I2C https://tronixstuff.com Wykorzystuje bibliotekę klawiatur dla Arduino https://www.arduino.cc/playground/Code/Keypad autorstwa Marka Stanleya, Alexandra Breviga */
#include "Klawiatura.h"
#include "Wire.h" // dla LCD I2C #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
stały bajt ROWS = 4; //cztery rzędy
stały bajt COLS = 4; //cztery kolumny znaków klucze[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bajt wierszPins[ROWS] = { 5, 4, 3, 2}; //połączenie z pinoutami wiersza klawiatury byte colPins[COLS] = { 9, 8, 7, 6}; //połączenie z pinoutami kolumn klawiatury int count=0;
Klawiatura klawiatury = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
pusta konfiguracja()
{ Szeregowy.początek(9600); lcd.początek(16, 2); lcd.print("Test klawiatury!"); opóźnienie (1000); lcd.clear(); }
pusta pętla()
{ klawisz znaku = klawiatura.getKey(); if (klucz != NO_KEY) { lcd.print(key); Serial.print(klucz); liczyć++; if (liczba==17) { lcd.clear(); liczba=0; } } }
I znowu możesz zobaczyć wyniki powyższego szkicu w filmie.
A teraz przykładowy projekt, który jest prawdopodobnie najbardziej pożądanym zastosowaniem klawiatury numerycznej…
Krok 4: Przykładowy projekt – System dostępu PIN
Najbardziej pożądanym zastosowaniem klawiatury numerycznej wydaje się być aplikacja w stylu „PIN”, w której Arduino jest instruowane, aby zrobić coś na podstawie prawidłowego numeru wprowadzonego do klawiatury. Poniższy szkic wykorzystuje sprzęt opisany dla poprzedniego szkicu i implementuje sześciocyfrowy system wprowadzania kodu PIN.
Akcje, które mają zostać wykonane, można wstawić w funkcjach poprawny PIN() i niepoprawnyPIN(). A PIN jest ustawiany w tablicy PIN[6]. Przy odrobinie dodatkowej pracy możesz również stworzyć własną funkcję zmiany kodu PIN.
// Przełącznik PIN z 16-cyfrową klawiaturą numeryczną// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
stały bajt ROWS = 4; //cztery rzędy
stały bajt COLS = 4; //cztery kolumny znaków klucze[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; bajt wierszPins[ROWS] = { 5, 4, 3, 2}; //połączenie z pinoutami wiersza klawiatury byte colPins[COLS] = { 9, 8, 7, 6}; //podłącz do wyprowadzeń kolumn klawiatury
Klawiatura klawiatury = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
PIN znaku[6]={
„1”, „2”, „A”, „D”, „5”, „6”}; // nasz tajny (!) numer znak próba[6]={ '0', '0', '0', '0', '0', '0'}; // użyte do porównania int z=0;
pusta konfiguracja()
{ Szeregowy.początek(9600); lcd.początek(16, 2); lcd.print("Blokada PIN"); opóźnienie (1000); lcd.clear(); lcd.print("Wpisz PIN…"); }
void correctPIN() // zrób to, jeśli wprowadzono poprawny PIN
{ lcd.print("* Poprawny PIN *"); opóźnienie (1000); lcd.clear(); lcd.print("Wpisz PIN…"); }
void invalidPIN() // zrób to, jeśli wprowadzono nieprawidłowy PIN
{ lcd.print(" * Spróbuj ponownie *"); opóźnienie (1000); lcd.clear(); lcd.print("Wpisz PIN…"); }
nieważny kod PIN()
{ int poprawny=0; wew; dla (i = 0; ja < 6; i++) {
if (próba==PIN)
{ poprawnie++; } } if (poprawny==6) { poprawny PIN(); } inny { niepoprawny PIN(); }
for (int zz=0; zz<6; zz++) { próba[zz]='0'; } }
void przeczytajKlawiatura()
{ klawisz znaku = klawiatura.getKey(); if (klucz != NO_KEY) { próba[z]=klucz; z++; switch(key) { przypadek '*': z=0; przerwa; przypadek '#': z=0; opóźnienie (100); // dla dodatkowego odbicia lcd.clear(); sprawdźPIN(); przerwa; } } }
pusta pętla()
{ przeczytajKlawiatura(); }
Projekt jest pokazany na filmie.
Teraz masz możliwość używania dwunasto- i szesnastoprzyciskowych klawiatur z systemami Arduino. Jestem pewien, że w niedalekiej przyszłości wymyślisz coś przydatnego i interesującego za pomocą klawiatur.
Ten post jest dostarczany przez pmdway.com – wszystko dla producentów i entuzjastów elektroniki, z darmową dostawą na całym świecie.
Zalecana:
Korzystanie z Mifare Ultralight C z RC522 na Arduino: 3 kroki
Używanie Mifare Ultralight C z RC522 na Arduino: Używanie technologii RFID do identyfikacji posiadaczy kart lub autoryzacji do zrobienia czegoś (otwarcie drzwi itp.) jest dość powszechnym podejściem. W przypadku aplikacji DIY moduł RC522 jest szeroko stosowany, ponieważ jest dość tani i istnieje wiele kodu dla tego modułu.I
Korzystanie z robota rysującego dla Arduino z godzinami samouczków kodu: 3 kroki
Korzystanie z robota rysującego dla Arduino z samouczkami Godziny kodowania: Stworzyłem robota rysującego Arduino na warsztaty, aby pomóc nastoletnim dziewczętom zainteresować się tematami STEM (patrz https://www.instructables.com/id/Arduino-Drawing-Robot/ ). Robot został zaprojektowany do korzystania z poleceń programowania w stylu żółwia, takich jak naprzód (odległość
Korzystanie z modułów zegara czasu rzeczywistego DS1307 i DS3231 z Arduino: 3 kroki
Korzystanie z modułów zegara czasu rzeczywistego DS1307 i DS3231 z Arduino: Ciągle otrzymujemy prośby dotyczące korzystania z modułów zegara czasu rzeczywistego DS1307 i DS3231 z Arduino z różnych źródeł – więc jest to pierwszy z dwuczęściowego samouczka na temat ich używania. W tym samouczku Arduino mamy dla nas dwa moduły zegara czasu rzeczywistego
Korzystanie z TFT 1.44 z Arduino Nano: 4 kroki
Korzystanie z TFT 1.44 z Arduino Nano: W tym samouczku dowiemy się, jak podłączyć ekran LCD TFT 1.44, który jest dostarczany z zestawami Robo-Geek. Te małe ekrany LCD są przydatne podczas pracy z mikrorobotyką, ponieważ zapewniają wygodny wyświetlacz o rozdzielczości 128 x 128 pikseli. Istnieją 2 rodzaje TFT 1.44
Pancerz z klawiatur: 7 kroków
Pancerz z klawiatur: Jest to instrukcja tworzenia zbroi z zestawu klawiatur. Nie używaj pił do metalu, ponieważ zostaną przez to zniszczone, a ponieważ będziesz obsługiwać wszelkiego rodzaju paskudne urządzenia i ostre krawędzie, uważaj, aby nie zranić