Përmbajtje:

Përdorimi i tastierave numerike me Arduino: 4 hapa
Përdorimi i tastierave numerike me Arduino: 4 hapa

Video: Përdorimi i tastierave numerike me Arduino: 4 hapa

Video: Përdorimi i tastierave numerike me Arduino: 4 hapa
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Nëntor
Anonim
Përdorimi i tastierave numerike me Arduino
Përdorimi i tastierave numerike me Arduino

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

Fillimi
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: