Բովանդակություն:

Arduino- ի հետ թվային ստեղնաշարերի օգտագործումը. 4 քայլ
Arduino- ի հետ թվային ստեղնաշարերի օգտագործումը. 4 քայլ

Video: Arduino- ի հետ թվային ստեղնաշարերի օգտագործումը. 4 քայլ

Video: Arduino- ի հետ թվային ստեղնաշարերի օգտագործումը. 4 քայլ
Video: Ինչպես կատարել 4-ալիք ESP8266 ESP01 Wi-Fi ռելեներ | ESP01 Տնային ավտոմատացում | Remotexy | Խաբել 2024, Նոյեմբեր
Anonim
Օգտագործելով թվային ստեղնաշար Arduino- ի հետ
Օգտագործելով թվային ստեղնաշար Arduino- ի հետ

Թվային ստեղնաշարերը կարող են պարզ վերջնական օգտագործողի այլընտրանք ապահովել ձեր նախագծերի տարբեր ինտերֆեյսերի համար: Կամ, եթե ձեզ շատ կոճակներ են պետք, դրանք կարող են ձեզ շատ ժամանակ խնայել շինարարության հարցում: Մենք կանցնենք դրանց միացման միջոցով ՝ օգտագործելով Arduino գրադարանը, այնուհետև կավարտենք օգտակար օրինակով ուրվագծով:

Քայլ 1: Սկսելու համար

Սկսել
Սկսել

Անկախ նրանից, թե որտեղից եք ձեռք բերում ձեր ստեղնաշարերը, համոզվեք, որ կարող եք ձեռք բերել տվյալների թերթիկը, քանի որ դա ավելի կհեշտացնի կյանքը դրանք միացնելիս: Օրինակ `այս քայլի պատկերը:

Տվյալների թերթիկը կարևոր է, քանի որ այն ձեզ կասի, թե ստեղնաշարի որ կապերն կամ միակցիչները տողերի և սյուների համար են: Եթե չունեք տվյալների թերթիկ, ապա ձեզ հարկավոր է ձեռքով որոշել, թե որ կոնտակտներն են տողերի և սյուների համար:

Դա կարելի է անել ՝ օգտագործելով բազմաչափի (ազդանշանի) շարունակականության գործառույթը: Սկսեք ՝ մեկ զոնդ տեղադրելով 1 -ին կապում, մյուսը ՝ 2 -րդ կապում և սեղմեք ստեղները մեկ առ մեկ: Նշում կատարեք, երբ կոճակն ավարտի շրջանը, այնուհետև անցեք հաջորդ քորոցին: Շուտով կիմանաք, թե որն է որը: Օրինակ, ստեղնաշարի օրինակին 1 և 5 կոճակները նախատեսված են «1 ″» կոճակի համար, 2 և 5 «4 for» և այլն…

Այս պահին խնդրում ենք ներբեռնել և տեղադրել Arduino ստեղնաշարի գրադարանը: Այժմ մենք ցույց կտանք, թե ինչպես օգտագործել երկու ստեղնաշարը պարզ օրինակներում:

Քայլ 2: Օգտագործելով 12 թվանշանի ստեղնաշար

Displayուցադրման համար մենք կօգտագործենք փոքր սև ստեղնաշարը, Arduino Uno- համատեղելի և LCD ՝ I2C ինտերֆեյսով: Եթե LCD չունեք, դրա փոխարեն միշտ կարող եք տեքստը ուղարկել սերիական մոնիտոր:

Միացրեք LCD- ը, այնուհետև ստեղնաշարը միացրեք Arduino- ին հետևյալ եղանակով. Ստեղնաշարի տող 1 Arduino թվային 5 Keypad տող 2 Arduino թվային 4 Keypad տող 3 Arduino թվային 3 Keypad տող 4 Arduino թվային 2 Keypad սյունակ 1 Arduino թվային 8 Keypad սյունակ 2 դեպի Arduino digital 7Keypad սյունակ 3 -ից Arduino digital 6 Եթե ձեր ստեղնաշարը տարբերվում է մերից, ուշադրություն դարձրեք ուրվագծի տողերին ՝

// ստեղնաշարի տիպի սահմանում

Քանի որ դուք պետք է փոխեք զանգվածների շարքերում տողերի PIN [ROWS] և colPins [COLS]: Մուտքագրում եք ստեղնաշարի տողերին և սյունակներին համապատասխանաբար թվային կապի համարներ:

Ավելին, զանգվածի բանալիները պահում են LCD- ում ցուցադրվող արժեքները, երբ սեղմվում է որոշակի կոճակ: Դուք կարող եք տեսնել, որ մենք այն համապատասխանեցրել ենք օգտագործված ֆիզիկական ստեղնաշարին, սակայն կարող եք այն փոխել այն, ինչ ձեզ հարկավոր է: Բայց առայժմ մուտքագրեք և վերբեռնեք հետևյալ ուրվագիծը, երբ գոհ կլինեք տողի/կապի համարի հատկացումներից.

/ * Թվային ստեղնաշար և I2C LCD https://tronixstuff.com Օգտագործում է Arduino- ի համար ստեղնաշարի գրադարան https://www.arduino.cc/playground/Code/Keypad ՝ Մարկ Սթենլիի, Ալեքսանդր Բրևիգի */

#ներառել «Ստեղնախումբ.հ»

#ներառել «Wire.h» // I2C LCD- ի համար #ներառել «LiquidCrystal_I2C.h» // I2C ավտոբուսի LCD մոդուլի համար // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD հասցեն սահմանել 0x27 ՝ 16 նշանի և 2 տողի ցուցադրման համար

// ստեղնաշարի տիպի սահմանում

const բայթ ROWS = 4; // չորս տող const բայթ COLS = 3; // երեք սյունակ նշելու ստեղներ [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

բայթ rowPins [ROWS] = {

5, 4, 3, 2}; // միանալ ստեղնաշարի բայթ colPins- ի տողերի pinouts- ին [COLS] = {8, 7, 6}; // միանալ ստեղնաշարի սյունակներին

int հաշվարկ = 0;

Ստեղնաշարի ստեղնաշար = Ստեղնախումբ (makeKeymap (ստեղներ), rowPins, colPins, ROWS, COLS);

դատարկ կարգավորում ()

{lcd.init (); // նախաստորագրել lcd lcd.backlight (); // միացնել LCD լուսարձակը}

դատարկ շրջան ()

{char key = keypad.getKey (); եթե (բանալի! = NO_KEY) {lcd.print (բանալի); հաշվել ++; եթե (հաշվել == 17) {lcd.clear (); հաշվել = 0; }}}

Իսկ էսքիզի արդյունքները ցուցադրվում են տեսանյութում: Այսպիսով, այժմ դուք կարող եք տեսնել, թե ինչպես կարող են կոճակների սեղմումները թարգմանվել տվյալների մեջ ՝ ուրվագծում օգտագործելու համար: Այժմ մենք կկրկնենք այս ցուցադրումը ավելի մեծ ստեղնաշարով:

Քայլ 3: Օգտագործելով 16 թվանշանի ստեղնաշար

Մենք կօգտագործենք ավելի մեծ 4 × 4 ստեղնաշար, Arduino Uno- համատեղելի և Akafugu- ից I2C LCD- ի փոփոխման համար ցուցադրման նպատակով: Կրկին, եթե LCD չունեք, դրա փոխարեն միշտ կարող եք տեքստը ուղարկել սերիական մոնիտոր: Միացրեք LCD- ը և միացրեք ստեղնաշարը Arduino- ին հետևյալ եղանակով.

  • Ստեղնաշարի տող 1 (ութ կապ) Arduino թվային 5 -ին
  • Ստեղնաշարի տող 2 (փին 1) դեպի Arduino digital 4
  • Ստեղնաշարի տող 3 (կապ 2) Arduino թվային 3 -ին
  • Ստեղնաշարի տող 4 (փին 4) դեպի Arduino թվային 2
  • Ստեղնաշարի սյունակ 1 (կապ 3) Arduino թվային 9 -ին
  • Ստեղնաշարի սյունակ 2 (փին 5) դեպի Arduino digital 8
  • Ստեղնաշարի սյունակ 3 (փին 6) դեպի Arduino digital 7
  • Ստեղնաշարի սյունակ 4 (փին 7) դեպի Arduino թվային 6

Հիմա ուրվագծի վերաբերյալ. Նկատի ունեցեք, թե ինչպես ենք մենք տեղավորվել ավելի մեծ թվային ստեղնաշարի համար. Զանգվածի նշման ստեղների լրացուցիչ սյունակ , զանգվածի colPins- ում լրացուցիչ քորոց և բայթ COLS = 4:

/ * Թվային ստեղնաշար և I2C LCD https://tronixstuff.com Օգտագործում է Arduino- ի համար ստեղնաշարի գրադարան https://www.arduino.cc/playground/Code/Keypad ՝ Մարկ Սթենլիի, Ալեքսանդր Բրևիգի */

#ներառել «Ստեղնախումբ.հ»

#ներառել «Wire.h» // I2C LCD- ի համար #ներառել «TWILiquidCrystal.h» // https://store.akafugu.jp/products/26 LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

const բայթ ROWS = 4; // չորս տող

const բայթ COLS = 4; // չորս սյունակ նշելու ստեղներ [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; բայթ rowPins [ROWS] = {5, 4, 3, 2}; // միանալ ստեղնաշարի բայթ colPins- ի տողերի pinouts- ին [COLS] = {9, 8, 7, 6}; // միանալ ստեղնաշարի int count = 0 սյունակներին;

Ստեղնաշարի ստեղնաշար = Ստեղնախումբ (makeKeymap (ստեղներ), rowPins, colPins, ROWS, COLS);

դատարկ կարգավորում ()

{Serial.begin (9600); lcd. սկսել (16, 2); lcd.print («Ստեղնաշարի փորձարկում»); ուշացում (1000); lcd. հստակ (); }

դատարկ շրջան ()

{char key = keypad.getKey (); if (բանալի! = NO_KEY) {lcd.print (բանալի); Serial.print (բանալին); հաշվել ++; եթե (հաշվել == 17) {lcd.clear (); հաշվել = 0; }}}

Եվ կրկին տեսանյութի վերևում կարող եք տեսնել էսքիզների արդյունքները:

Այժմ օրինակելի նախագծի համար, որը, հավանաբար, թվային ստեղնաշարի ամենապահանջված օգտագործումն է…

Քայլ 4. Նախագծի օրինակ - PIN մուտքի համակարգ

Թվային ստեղնաշարի համար առավել պահանջված օգտագործումը, կարծես, «PIN» ոճով ծրագիր է, որտեղ Arduino- ին հանձնարարված է ինչ-որ բան անել ՝ հիմնվելով ստեղնաշարի մեջ մուտքագրված ճիշտ թվի վրա: Հետևյալ ուրվագիծը օգտագործում է նախորդ ուրվագծի համար նկարագրված սարքավորումները և իրականացնում է վեցանիշ PIN մուտքագրման համակարգ:

Տեղի ունեցող գործողությունները կարող են տեղադրվել correctPIN () և սխալ PIN () գործառույթներում: Իսկ PIN- ը սահմանվում է զանգվածի char PIN- ում [6]: Մի փոքր լրացուցիչ աշխատանքով կարող եք ստեղծել նաև ձեր սեփական PIN- փոփոխման գործառույթը:

// PIN անջատիչ 16 թվանշանային թվային ստեղնաշարով // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

const բայթ ROWS = 4; // չորս տող

const բայթ COLS = 4; // չորս սյունակ նշելու ստեղներ [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; բայթ rowPins [ROWS] = {5, 4, 3, 2}; // միանալ ստեղնաշարի բայթ colPins- ի տողերի pinouts- ին [COLS] = {9, 8, 7, 6}; // միանալ ստեղնաշարի սյունակներին

Ստեղնաշարի ստեղնաշար = Ստեղնախումբ (makeKeymap (ստեղներ), rowPins, colPins, ROWS, COLS);

նշանի PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // մեր գաղտնի (!) թիվը char փորձ [6] = {'0', '0', '0', '0', '0', '0'}; // օգտագործվում է համեմատության համար int z = 0;

դատարկ կարգավորում ()

{Serial.begin (9600); lcd. սկսել (16, 2); lcd.print («PIN կողպեք»); ուշացում (1000); lcd. հստակ (); lcd.print («Մուտքագրեք PIN …»); }

void correctPIN () // դա արեք, եթե ճիշտ PIN- ը մուտքագրված է

{lcd.print (" * Corիշտ PIN *"); ուշացում (1000); lcd. հստակ (); lcd.print («Մուտքագրեք PIN …»); }

void falsePIN () // դա արեք, եթե սխալ PIN է մուտքագրվել

{lcd.print (" * Փորձեք նորից *"); ուշացում (1000); lcd. հստակ (); lcd.print («Մուտքագրեք PIN …»); }

անվավեր ստուգման PIN ()

{int ճիշտ = 0; int i; համար (i = 0; i <6; i ++) {

եթե (փորձ == PIN )

{ճիշտ ++; }} if (ճիշտ == 6) {correctPIN (); } else {սխալ PIN (); }

համար (int zz = 0; zz <6; zz ++) {փորձ [zz] = '0'; }}

դատարկ կարդալ Keypad ()

{char key = keypad.getKey (); եթե (բանալի! = NO_KEY) {փորձ [z] = բանալին; z ++; անջատիչ (բանալին) {case '*': z = 0; ընդմիջում; գործ '#': z = 0; ուշացում (100); // լրացուցիչ դեբունսի համար lcd.clear (); checkPIN (); ընդմիջում; }}}

դատարկ շրջան ()

{readKeypad (); }

Նախագիծը ցուցադրվում է տեսանյութում:

Այսպիսով, այժմ դուք հնարավորություն ունեք տասներկու և տասնվեց կոճակ ստեղնաշար օգտագործել ձեր Arduino համակարգերի հետ: Համոզված եմ, որ մոտ ապագայում օգտակար և հետաքրքիր բան կգտնեք ՝ օգտագործելով ստեղնաշարերը:

Այս գրառումը ձեզ է ներկայացնում pmdway.com- ը `ամեն ինչ արտադրողների և էլեկտրոնիկայի սիրահարների համար, անվճար առաքում ամբողջ աշխարհով:

Խորհուրդ ենք տալիս: