Cuprins:
- Pasul 1: Introducere
- Pasul 2: Utilizarea unei tastaturi cu 12 cifre
- Pasul 3: Utilizarea unei tastaturi cu 16 cifre
- Pasul 4: Exemplu de proiect - Sistem de acces PIN
Video: Utilizarea tastaturilor numerice cu Arduino: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Tastaturile numerice pot oferi o alternativă simplă pentru utilizatorul final pentru diverse interfețe pentru proiectele dvs. Sau dacă aveți nevoie de o mulțime de butoane, acestea vă pot economisi mult timp în ceea ce privește construcția. Vom trece prin conectarea lor, utilizând biblioteca Arduino și apoi vom termina cu un exemplu util de schiță.
Pasul 1: Introducere
Indiferent de unde primiți tastaturile, asigurați-vă că puteți obține foaia de date - deoarece acest lucru vă va ușura viața atunci când le conectați. De exemplu - imaginea din acest pas.
Foaia de date este importantă, deoarece vă va spune care pini sau conectori de pe tastatură sunt pentru rânduri și coloane. Dacă nu aveți foaia de date - va trebui să determinați manual care sunt contactele pentru rânduri și coloane.
Acest lucru se poate face folosind funcția de continuitate a unui multimetru (buzzer). Începeți prin plasarea unei sonde pe pinul 1, cealaltă sondă pe pinul 2 și apăsați tastele una câte una. Notați când un buton finalizează circuitul, apoi treceți la următorul pin. În curând veți ști care este care. De exemplu, pe exemplul tastaturii pinii 1 și 5 sunt pentru butonul „1 ″, 2 și 5 pentru„ 4 ″, etc …
În acest moment vă rugăm să descărcați și să instalați tastatura Arduino biblioteca. Acum vom demonstra cum să utilizați ambele tastaturi în exemple simple.
Pasul 2: Utilizarea unei tastaturi cu 12 cifre
Vom folosi tastatura mică neagră, un Arduino Uno-compatibil și un LCD cu o interfață I2C în scopul afișării. Dacă nu aveți un ecran LCD, puteți trimite întotdeauna textul la monitorul serial.
Conectați-vă LCD-ul, apoi conectați tastatura la Arduino în modul următor: Tastatura rândul 1 la Arduino digital 5 Tastatura rândul 2 la Arduino digital 4K Tastatura rândul 3 la Arduino digital 3 Tastatura rândul 4 la Arduino digital 2 Tastatura coloana 1 la Arduino digital 8 Tastatura coloana 2 la Arduino digital 7 Tastatura coloana 3 către Arduino digital 6 Dacă tastatura dvs. este diferită de a noastră, luați notă de liniile din schiță din:
// definiție tip tastatură
Deoarece trebuie să schimbați numerele din matricele rowPins [ROWS] și colPins [COLS]. Introduceți numerele de pin digitale conectate respectiv la rândurile și coloanele tastaturii.
Mai mult, tastele matrice stochează valorile afișate pe ecranul LCD atunci când este apăsat un anumit buton. Puteți vedea că l-am asortat cu tastatura fizică utilizată, totuși o puteți schimba cu orice aveți nevoie. Dar, deocamdată, introduceți și încărcați următoarea schiță după ce sunteți mulțumit de alocarea numărului de rânduri / coduri:
/ * Tastatură numerică și ecran LCD I2C https://tronixstuff.com Utilizează biblioteca tastaturii pentru Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#includeți „Keypad.h”
#include "Wire.h" // pentru I2C LCD #include "LiquidCrystal_I2C.h" // pentru I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // setați adresa LCD la 0x27 pentru un afișaj de 16 caractere și 2 linii
// definiție tip tastatură
octet const ROWS = 4; // patru rânduri const octet COLS = 3; // trei coloane tastele char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {8, 7, 6}; // conectați-vă la pinouturile coloanei tastaturii
int count = 0;
Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
configurare nulă ()
{lcd.init (); // inițializați lcd lcd.backlight (); // pornește iluminarea LCD}
bucla nulă ()
{char key = keypad.getKey (); if (cheie! = NO_KEY) {lcd.print (cheie); conta ++; if (count == 17) {lcd.clear (); număr = 0; }}}
Iar rezultatele schiței sunt afișate în videoclip. Deci, acum puteți vedea cum butoanele apăsate pot fi traduse în date pentru a fi utilizate într-o schiță. Acum vom repeta această demonstrație cu tastatura mai mare.
Pasul 3: Utilizarea unei tastaturi cu 16 cifre
Vom folosi tastatura mai mare 4 × 4, compatibilă cu Arduino Uno și pentru schimbarea ecranului LCD I2C de la Akafugu în scopul afișării. Din nou, dacă nu aveți un ecran LCD, puteți trimite întotdeauna textul la monitorul serial. Conectați ecranul LCD și apoi conectați tastatura la Arduino în modul următor:
- Tastați rândul 1 (pinul opt) la Arduino digital 5
- Tastatura rândul 2 (pinul 1) la Arduino digital 4
- Tastatura rândul 3 (pinul 2) la Arduino digital 3
- Tastați rândul 4 (pinul 4) la Arduino digital 2
- Tastatura coloana 1 (pinul 3) la Arduino digital 9
- Tastatura coloana 2 (pinul 5) la Arduino digital 8
- Tastatura coloana 3 (pinul 6) la Arduino digital 7
- Tastatura coloana 4 (pinul 7) la Arduino digital 6
Acum, pentru schiță - luați în considerare modul în care ne-am acomodat pentru tastatura numerică mai mare: coloana suplimentară din tastele char de matrice pinul suplimentar din matricea colPins și octetul COLS = 4.
/ * Tastatură numerică și ecran LCD I2C https://tronixstuff.com Utilizează biblioteca tastaturii pentru Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#includeți „Keypad.h”
#include "Wire.h" // pentru I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
octet const ROWS = 4; // patru rânduri
octet const COLS = 4; // patru coloane tastele char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {9, 8, 7, 6}; // conectați-vă la pinout-urile coloanei tastaturii int count = 0;
Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
configurare nulă ()
{Serial.begin (9600); lcd.inceput (16, 2); lcd.print („Test tastatură!”); întârziere (1000); lcd.clear (); }
bucla nulă ()
{char key = keypad.getKey (); if (cheie! = NO_KEY) {lcd.print (cheie); Serial.print (cheie); conta ++; if (count == 17) {lcd.clear (); număr = 0; }}}
Și din nou, puteți vedea rezultatele schiței de mai sus în videoclip.
Acum, pentru un exemplu de proiect, unul care este probabil cea mai solicitată utilizare a tastaturii numerice …
Pasul 4: Exemplu de proiect - Sistem de acces PIN
Cea mai solicitată utilizare pentru o tastatură numerică pare a fi o aplicație în stil „PIN”, unde Arduino este instruit să facă ceva pe baza unui număr corect introdus în tastatură. Următoarea schiță folosește hardware-ul descris pentru schița anterioară și implementează un sistem de introducere PIN din șase cifre.
Acțiunile care vor avea loc pot fi inserate în funcțiile correctPIN () și incorrectPIN (). Și PIN-ul este setat în matricea PIN [6]. Cu un pic de lucru suplimentar, ați putea crea propria funcție de modificare a codului PIN.
// Comutator PIN cu tastatură numerică din 16 cifre // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
octet const ROWS = 4; // patru rânduri
octet const COLS = 4; // patru coloane tastele char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {9, 8, 7, 6}; // conectați-vă la pinouturile coloanei tastaturii
Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
cod PIN [6] = {
„1”, „2”, „A”, „D”, „5”, „6”}; // încercarea noastră de număr secret (!) char [6] = {'0', '0', '0', '0', '0', '0'}; // folosit pentru comparație int z = 0;
configurare nulă ()
{Serial.begin (9600); lcd.inceput (16, 2); lcd.print („PIN Lock”); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }
void correctPIN () // faceți acest lucru dacă ați introdus codul PIN corect
{lcd.print ("* PIN corect *"); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }
void incorrectPIN () // faceți acest lucru dacă ați introdus un PIN incorect
{lcd.print ("* Încercați din nou *"); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }
gol nul PIN ()
{int corect = 0; int i; pentru (i = 0; i <6; i ++) {
if (încercare == PIN )
{corect ++; }} if (corect == 6) {corectPIN (); } else {PIN incorect (); }
for (int zz = 0; zz <6; zz ++) {tentativă [zz] = '0'; }}
anular citire tastatură ()
{char key = keypad.getKey (); if (cheie! = NO_KEY) {încercare [z] = cheie; z ++; comutator (cheie) {caz '*': z = 0; pauză; caz '#': z = 0; întârziere (100); // pentru debounce suplimentar lcd.clear (); checkPIN (); pauză; }}}
bucla nulă ()
{readKeypad (); }
Proiectul este demonstrat în videoclip.
Așadar, acum aveți posibilitatea de a utiliza tastaturi cu douăsprezece și șaisprezece butoane cu sistemele dvs. Arduino. Sunt sigur că veți veni cu ceva util și interesant folosind tastaturile în viitorul apropiat.
Această postare vă este adusă de pmdway.com - totul pentru producătorii și pasionații de electronice, cu livrare gratuită în toată lumea.
Recomandat:
Contor vizitator Utilizarea Arduino pe TinkerCad: 3 pași
Contor de vizitatori folosind Arduino pe TinkerCad: De multe ori trebuie să monitorizăm persoana / persoanele care vizitează un loc, cum ar fi sala de seminarii, sala de conferințe sau centrul comercial sau templul. Acest proiect poate fi folosit pentru a număra și afișa numărul de vizitatori care intră în orice sală de conferințe sau seminar
Utilizarea Mifare Ultralight C Cu RC522 pe Arduino: 3 pași
Utilizarea Mifare Ultralight C Cu RC522 pe Arduino: Utilizarea tehnologiei RFID pentru a identifica titularii de carduri sau pentru a autoriza să facă ceva (deschide o ușă etc.) este o abordare destul de comună. În cazul aplicației DIY, modulul RC522 este utilizat pe scară largă, deoarece este destul de ieftin și există o mulțime de cod pentru acest modul
Utilizarea unui afișaj cu 4 cifre și 7 segmente, cu Arduino: 7 pași
Utilizarea unui afișaj cu 4 cifre și 7 segmente, cu Arduino: În acest tutorial vă voi arăta cum să utilizați un afișaj pe 7 segmente cu 4 cifre folosind arduino. Unele lucruri de bază pe care aș dori să le subliniez este că acest lucru ocupă aproape toate pinii digitali de pe arduino uno, leonardo, plăcile cu 13 digi
Trimiteți date numerice de la un Arduino la altul: 16 pași
Trimiteți date numerice de la un Arduino la altul: Introducere de David Palmer, CDIO Tech. Ați trebuit vreodată să trimiteți câteva numere de la un Arduino la altul? Acest instructable arată cum. Puteți testa cu ușurință funcționează, tastând pur și simplu un șir de numere pentru a le trimite la S
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C - Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: 5 pași
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C | Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: Bună băieți, în acest instructables vom învăța cum să utilizați LED-uri neopixel ws2812 sau benzi LED sau matrice LED sau inel cu LED cu placa de dezvoltare m5stack m5stick-C cu Arduino IDE și vom face un model curcubeu cu el