Përmbajtje:
- Hapi 1: Fillimi
- Hapi 2: Përdorimi i një tastiere me 12 shifra
- Hapi 3: Përdorimi i një tastiere me 16 shifra
- Hapi 4: Shembull Projekti - Sistemi i Qasjes PIN
Video: Përdorimi i tastierave numerike me Arduino: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Tastierat numerike mund të ofrojnë një alternativë të thjeshtë të përdoruesit përfundimtar për ndërfaqe të ndryshme për projektet tuaja. Ose nëse keni nevojë për shumë butona, ato mund t'ju kursejnë shumë kohë në lidhje me ndërtimin. Ne do t'i kalojmë lidhjet e tyre, duke përdorur bibliotekën Arduino dhe pastaj do të përfundojmë me një skicë shembull të dobishme.
Hapi 1: Fillimi
Pavarësisht se nga i merrni tastierat tuaja, sigurohuni që të merrni fletën e të dhënave - pasi kjo do ta bëjë jetën më të lehtë kur i lidhni ato. Për shembull - imazhi në këtë hap.
Fleta e të dhënave është e rëndësishme pasi do t'ju tregojë se cilat kunja ose lidhës në tastierë janë për rreshtat dhe kolonat. Nëse nuk keni fletën e të dhënave - do t'ju duhet të përcaktoni manualisht se cilat kontakte janë për rreshtat dhe kolonat.
Kjo mund të bëhet duke përdorur funksionin e vazhdimësisë së një multimetri (zile). Filloni duke vendosur një sondë në kunjin 1, sondën tjetër në kunjin 2 dhe shtypni butonat një nga një. Shënoni kur një buton përfundon qarkun, pastaj kaloni në kunjin tjetër. Së shpejti do të kuptoni se cila është cila. Për shembull, në shembullin kunjat e tastierës 1 dhe 5 janë për butonin “1 ″, 2 dhe 5 për“4 ″, etj…
Në këtë pikë ju lutemi shkarkoni dhe instaloni bibliotekën e tastierës Arduino. Tani do të demonstrojmë se si t'i përdorim të dyja tastierat në shembuj të thjeshtë.
Hapi 2: Përdorimi i një tastiere me 12 shifra
Ne do të përdorim tastierën e vogël të zezë, një Arduino Uno-compatible dhe një LCD me një ndërfaqe I2C për qëllime të shfaqjes. Nëse nuk keni një LCD, gjithmonë mund ta dërgoni tekstin në monitorin serik.
Lidhni LCD -in tuaj dhe më pas lidhni tastierën me Arduino në mënyrën e mëposhtme: Rreshti i tastierës 1 tek Arduino dixhital 5Keypad rreshti 2 tek Arduino dixhital 4Keypad rreshti 3 tek Arduino dixhital 3Keypad rreshti 4 tek Arduino dixhital 2Keypad kolona 1 tek Arduino dixhitale 8Kollona e tastierës 2 në Arduino digjitale 7Keypad kolona 3 në Arduino dixhitale 6 Nëse tastiera juaj është e ndryshme nga e jona, merrni parasysh linjat në skicë nga:
// përkufizimi i llojit të tastierës
Siç duhet të ndryshoni numrat në vargjet rowPins [ROWS] dhe colPins [COLS]. Ju futni numrat pin pin dixhital të lidhur me rreshtat dhe kolonat e tastierës përkatësisht.
Për më tepër, çelësat e grupit ruajnë vlerat e shfaqura në LCD kur shtypet një buton i veçantë. Ju mund të shihni që ne e kemi përputhur atë me tastierën fizike të përdorur, megjithatë mund ta ndryshoni në atë që ju nevojitet. Por tani për tani, futni dhe ngarkoni skicën e mëposhtme sapo të jeni të kënaqur me ndarjet e numrave të rreshtit/kunjit:
/ * Tastiera numerike dhe I2C LCD https://tronixstuff.com Përdor bibliotekën e tastierës për Arduino https://www.arduino.cc/playground/Code/Keypad nga Mark Stanley, Alexander Brevig */
#përfshi "Tastiera.h"
#përfshi "Wire.h" // për LCD I2C #përfshi "LiquidCrystal_I2C.h" // për modulin LCD të autobusit I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // vendosni adresën LCD në 0x27 për një ekran me 16 karaktere dhe 2 rreshta
// përkufizimi i llojit të tastierës
const byte RRESHA = 4; // katër rreshta const byte COLS = 3; // çelësat e ngarkimit të tre kolonave [RRESAT] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPin [ROWS] = {
5, 4, 3, 2}; // lidheni me pinout -et e rreshtit të bajtit të tastierës colPins [COLS] = {8, 7, 6}; // lidheni me pinoutet e kolonave të tastierës
int numërimi = 0;
Tastiera e tastierës = Tastiera (makeKeymap (çelësat), rowPins, colPins, ROWS, COLS);
void setup ()
{lcd.init (); // inicializoni lcd lcd.lightlight (); // ndizni dritën e pasme LCD}
lak void ()
{char key = keypad.getKey (); nëse (çelësi! = NO_KEY) {lcd.print (çelësi); numëroni ++; nëse (numëroni == 17) {lcd.qartë (); numërim = 0; }}}
Dhe rezultatet e skicës tregohen në video. Pra, tani mund të shihni se si shtypjet e butonave mund të përkthehen në të dhëna për përdorim në një skicë. Tani do ta përsërisim këtë demonstrim me tastierën më të madhe.
Hapi 3: Përdorimi i një tastiere me 16 shifra
Ne do të përdorim tastierën më të madhe 4 × 4, një Arduino Uno-compatible dhe për një ndryshim LCD I2C nga Akafugu për qëllime të shfaqjes. Përsëri, nëse nuk keni një LCD ju gjithmonë mund ta dërgoni tekstin në monitorin serik. Lidhni LCD dhe lidhni tastierën me Arduino në mënyrën e mëposhtme:
- Rreshti i tastierës 1 (pin tetë) në Arduino dixhital 5
- Rreshti i tastierës 2 (kunja 1) në Arduino dixhitale 4
- Rreshti i tastierës 3 (pin 2) në Arduino dixhital 3
- Rreshti i tastierës 4 (pin 4) në Arduino dixhital 2
- Kolona e tastierës 1 (kunja 3) në Arduino dixhitale 9
- Kolona e tastierës 2 (kunja 5) në Arduino dixhitale 8
- Kolona e tastierës 3 (kunja 6) në Arduino dixhitale 7
- Kolona e tastierës 4 (kunja 7) në Arduino dixhitale 6
Tani për skicën - vini re se si jemi akorduar për tastierën më të madhe numerike: kolona shtesë në çelësat e grumbullit të grumbullit kunja shtesë në colPins e grupit dhe bajti COLS = 4.
/ * Tastiera numerike dhe I2C LCD https://tronixstuff.com Përdor bibliotekën e tastierës për Arduino https://www.arduino.cc/playground/Code/Keypad nga Mark Stanley, Alexander Brevig */
#përfshi "Tastiera.h"
#përfshi "Wire.h" // për LCD I2C #përfshi "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
const byte RRESHA = 4; // katër rreshta
const byte COLS = 4; // katër kolona të çelësave të ngarkimit [RRESHTAT] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // lidheni me pinout -et e rreshtit të bajtit të tastierës colPins [COLS] = {9, 8, 7, 6}; // lidheni me daljet e kolonave të numrit int të tastierës = 0;
Tastiera e tastierës = Tastiera (makeKeymap (çelësat), rowPins, colPins, ROWS, COLS);
void setup ()
{Serial.fillo (9600); lcd.filloni (16, 2); lcd.print ("Testi i tastierës!"); vonesa (1000); lcd.qartë (); }
lak void ()
{char key = keypad.getKey (); nëse (çelësi! = NO_KEY) {lcd.print (çelësi); Serial.print (kyç); numëroni ++; nëse (numëroni == 17) {lcd.qartë (); numërim = 0; }}}
Dhe përsëri ju mund t'i shihni rezultatet e skicës së mësipërme në video.
Tani për një projekt shembull, ai që është ndoshta përdorimi më i kërkuar i tastierës numerike…
Hapi 4: Shembull Projekti - Sistemi i Qasjes PIN
Përdorimi më i kërkuar për një tastierë numerike duket të jetë një aplikacion i stilit "PIN", ku Arduino udhëzohet të bëjë diçka bazuar në një numër të saktë të futur në tastierë. Skica e mëposhtme përdor pajisjen e përshkruar për skicën e mëparshme dhe zbaton një sistem hyrjeje PIN me gjashtë shifra.
Veprimet që do të ndodhin mund të futen në funksionet e saktëPIN () dhe PIN të pasaktë (). Dhe PIN -i është vendosur në kodin PIN të grupit [6]. Me pak punë shtesë mund të krijoni edhe funksionin tuaj të ndryshimit të PIN-it.
// Ndërruesi PIN me tastierë numerike 16-shifrore // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
const byte RRESHA = 4; // katër rreshta
const byte COLS = 4; // katër kolona të çelësave të ngarkimit [RRESHTAT] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // lidheni me pinout -et e rreshtit të bajtit të tastierës colPins [COLS] = {9, 8, 7, 6}; // lidheni me pinoutet e kolonave të tastierës
Tastiera e tastierës = Tastiera (makeKeymap (çelësat), rowPins, colPins, ROWS, COLS);
kodi PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // përpjekja jonë e fshehtë (!) e numrit char [6] = {'0', '0', '0', '0', '0', '0'}; // përdoret për krahasim int z = 0;
void setup ()
{Serial.fillo (9600); lcd.filloni (16, 2); lcd.print ("Bllokimi PIN"); vonesa (1000); lcd.qartë (); lcd.print ("Fut PIN …"); }
void correctPIN () // bëjeni këtë nëse është futur PIN i saktë
{lcd.print (" * PIN i saktë *"); vonesa (1000); lcd.qartë (); lcd.print ("Fut PIN …"); }
void falsePIN () // bëjeni këtë nëse është futur PIN i pasaktë
{lcd.print (" * Provo përsëri *"); vonesa (1000); lcd.qartë (); lcd.print ("Fut PIN …"); }
pavlefshme checkPIN ()
{int e saktë = 0; int i; për (i = 0; i <6; i ++) {
nëse (përpjekje == PIN )
{saktë ++; }} if (saktë == 6) {correctPIN (); } else {PIN i pasaktë (); }
për (int zz = 0; zz <6; zz ++) {përpjekje [zz] = '0'; }}
leximi i pavlefshëm Keypad ()
{char key = keypad.getKey (); nëse (çelësi! = NO_KEY) {përpjekja [z] = çelësi; z ++; switch (kyç) {case '*': z = 0; pushim; rasti '#': z = 0; vonesë (100); // për debounce shtesë lcd.clear (); checkPIN (); pushim; }}}
lak void ()
{readKeypad (); }
Projekti tregohet në video.
Pra, tani ju keni aftësinë të përdorni tastiera me dymbëdhjetë dhe gjashtëmbëdhjetë butona me sistemet tuaja Arduino. Jam i sigurt që do të gjeni diçka të dobishme dhe interesante duke përdorur tastierat në të ardhmen e afërt.
Ky postim ju është sjellë nga pmdway.com - gjithçka për prodhuesit dhe entuziastët e elektronikës, me shpërndarje falas në të gjithë botën.
Recommended:
PARAQITJA E MADHE alfa-numerike: 7 hapa (me fotografi)
P DRSHKRIMI I MADH Alfa-numerik: Ka pak zgjedhje nëse keni nevojë për një ekran që mund të shihet nga e gjithë dhoma, një ekran i madh. Ju mund të bëni një si "koha ime në katror" ose "leds në xham", por kjo kërkon rreth 40 orë punë të lodhshme. Pra, këtu është një e lehtë për të bërë ekran të madh.
Përdorimi i Mifare Ultralight C Me RC522 në Arduino: 3 hapa
Përdorimi i Mifare Ultralight C Me RC522 në Arduino: Përdorimi i teknologjisë RFID për të identifikuar mbajtësit e kartave ose për të autorizuar për të bërë diçka (hap derën etj.) Është një qasje mjaft e zakonshme. Në rast të aplikimit DIY, moduli RC522 përdoret gjerësisht pasi është mjaft i lirë dhe ka shumë kod për këtë modul. Unë
Përdorimi i një ekrani me 4 shifra dhe 7 segmente, me Arduino: 7 hapa
Duke përdorur një ekran me 4 shifra dhe 7 segmente, me Arduino: Në këtë tutorial do t'ju tregoj se si të përdorni një ekran 7 segmentesh me 4 shifra duke përdorur arduino. Disa gjëra themelore që do të doja të theksoja është se kjo merr pothuajse të gjitha kunjat dixhitalë në arduino uno, leonardo, tabelat me 13 digi
Përdorimi i sensorit infra të kuqe me Arduino: 8 hapa (me fotografi)
Përdorimi i sensorit infra të kuqe me Arduino: Çfarë është një sensor infra të kuqe (aka IR)? Një sensor IR është një instrument elektronik që skanon sinjalet IR në intervalet e frekuencave specifike të përcaktuara nga standardet dhe i konverton ato në sinjale elektrike në pinin e tij të daljes (i quajtur zakonisht pin sinjali) Me Sinjali IR
Dërgoni të dhëna numerike nga një Arduino në tjetrin: 16 hapa
Dërgoni të dhëna numerike nga një Arduino në tjetrin: Hyrje nga David Palmer, CDIO Tech. në Universitetin Aston. A ju është dashur ndonjëherë të dërgoni disa numra nga njëri Arduino në tjetrin? Ky udhëzues tregon se si. Ju lehtë mund ta provoni se funksionon thjesht duke shtypur një varg numrash për t'u dërguar në S