Orodha ya maudhui:

Kutumia keypads za Nambari na Arduino: Hatua 4
Kutumia keypads za Nambari na Arduino: Hatua 4

Video: Kutumia keypads za Nambari na Arduino: Hatua 4

Video: Kutumia keypads za Nambari na Arduino: Hatua 4
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Novemba
Anonim
Kutumia keypads za Nambari na Arduino
Kutumia keypads za Nambari na Arduino

Keypads za Nambari zinaweza kutoa njia mbadala rahisi ya mtumiaji wa mwisho kwa njia anuwai za miradi yako. Au ikiwa unahitaji vifungo vingi, vinaweza kukuokoa muda mwingi kwa ujenzi. Tutakimbia kupitia kuziunganisha, kwa kutumia maktaba ya Arduino na kisha kumaliza na mfano muhimu wa mchoro.

Hatua ya 1: Kuanza

Kuanza
Kuanza

Haijalishi wapi unapata vitufe vyako kutoka, hakikisha unaweza kupata karatasi ya data - kwani hii itafanya maisha iwe rahisi wakati wa kuziunganisha. Kwa mfano - picha katika hatua hii.

Karatasi ya data ni muhimu kwani itakuambia ni pini gani au viunganishi kwenye keypad ni kwa safu na safu. Ikiwa huna karatasi ya data - utahitaji kuamua mwenyewe ni anwani zipi kwa safu na safu.

Hii inaweza kufanywa kwa kutumia mwendelezo wa multimeter (buzzer). Anza kwa kuweka uchunguzi mmoja kwenye pini 1, uchunguzi mwingine kwenye pini 2, na ubonyeze funguo moja kwa moja. Andika muhtasari wa wakati kitufe kinakamilisha mzunguko, kisha nenda kwenye pini inayofuata. Hivi karibuni utajua ambayo ni ipi. Kwa mfano, kwenye mfano vifungo vya keypad 1 na 5 ni vya kitufe cha "1 ″, 2 na 5 kwa" 4 ″, n.k.

Wakati huu tafadhali pakua na usakinishe maktaba ya Arduino. Sasa tutaonyesha jinsi ya kutumia vitufe vyote katika mifano rahisi.

Hatua ya 2: Kutumia Keypad ya Nambari 12

Tutatumia keypad ndogo nyeusi, Arduino Uno-sambamba na LCD iliyo na kiolesura cha I2C kwa madhumuni ya kuonyesha. Ikiwa huna LCD unaweza kutuma maandishi kwa mfuatiliaji wa serial badala yake.

Waya waya LCD yako kisha unganisha keypad kwa Arduino kwa njia ifuatayo: Kitufe cha keypad 1 hadi Arduino digital 5Keypad safu ya 2 hadi Arduino digital 4KKiashiria cha 3 hadi Arduino digital 3Kiungo cha 4 kwa Arduino digital 2Keypad safu 1 kwa Arduino digital 8Keypad safu ya 2 hadi Arduino digital 7Keypad safu ya 3 hadi Arduino digital 6 Ikiwa keypad yako ni tofauti na yetu, zingatia mistari kwenye mchoro kutoka:

Ufafanuzi wa aina ya keypad

Kama unahitaji kubadilisha nambari kwenye safu za safu safu [ROWS] na colPins [COLS]. Unaingiza nambari za pini za dijiti zilizounganishwa kwenye safu na safu wima za kitufe mtawaliwa.

Kwa kuongezea, vitufe vya safu huhifadhi maadili yaliyoonyeshwa kwenye LCD wakati kitufe fulani kinabanwa. Unaweza kuona kuwa tumeilinganisha na keypad ya mwili inayotumika, hata hivyo unaweza kuibadilisha kuwa chochote unachohitaji. Lakini kwa sasa, ingiza na upakie mchoro ufuatao mara tu utakaporidhika na mgao wa nambari za safu / pini:

/ * Kitufe cha Nambari na I2C LCD https://tronixstuff.com Inatumia maktaba ya Keypad kwa Arduino https://www.arduino.cc/playground/Code/Keypad na Mark Stanley, Alexander Brevig * /

# pamoja na "Keypad.h"

# pamoja na "Wire.h" // kwa I2C LCD # pamoja na "LiquidCrystal_I2C.h" // kwa I2C basi LCD moduli // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // weka anwani ya LCD kwa 0x27 kwa chars 16 na onyesho la laini 2

Ufafanuzi wa aina ya keypad

const byte ROWS = 4; // safu nne const byte COLS = 3; // funguo tatu za safu wima [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

Pini za baiti [ROWS] = {

5, 4, 3, 2}; // unganisha kwenye pini zilizowekwa kwenye safu ya keypad byte colPins [COLS] = {8, 7, 6}; // unganisha kwenye vifungo vya safu ya keypad

hesabu = 0;

Keypad keypad = Keypad (makeKeymap (funguo), safu za pini, colPins, ROWS, COLS);

kuanzisha batili ()

{lcd.init (); // kuanzisha lcd lcd. taa ya nyuma (); // washa taa ya nyuma ya LCD}

kitanzi batili ()

{char ufunguo = keypad.getKey (); ikiwa (ufunguo! = NO_KEY) {lcd.print (ufunguo); hesabu ++; ikiwa (hesabu == 17) {lcd. clear (); hesabu = 0; }}}

Na matokeo ya mchoro yanaonyeshwa kwenye video. Kwa hivyo sasa unaweza kuona jinsi vitufe vya kitufe vinaweza kutafsiriwa kuwa data kwa matumizi kwenye mchoro. Sasa tutarudia onyesho hili na kitufe kikubwa.

Hatua ya 3: Kutumia Keypad 16 ya Nambari

Tutatumia keypad kubwa ya 4 × 4, Arduino Uno-sambamba na kubadilisha I2C LCD kutoka Akafugu kwa madhumuni ya kuonyesha. Tena, ikiwa huna LCD unaweza kutuma maandishi kwa mfuatiliaji wa serial badala yake. Washa LCD na kisha unganisha kitufe kwa Arduino kwa njia ifuatayo:

  • Mstari wa keypad 1 (pini nane) kwa Arduino digital 5
  • Mstari wa keypad 2 (pin 1) kwa Arduino digital 4
  • Mstari wa keypad 3 (pini 2) kwa Arduino digital 3
  • Mstari wa keypad 4 (pin 4) kwa Arduino digital 2
  • Keypad safu 1 (pini 3) kwa Arduino digital 9
  • Keypad safu 2 (pin 5) kwa Arduino digital 8
  • Keypad safu 3 (pin 6) kwa Arduino digital 7
  • Safu ya keypad 4 (pin 7) kwa Arduino digital 6

Sasa kwa mchoro - angalia jinsi tumeishi kwa kitufe kikubwa cha nambari: safu ya ziada kwenye vitufe vya safu ya safu pini ya ziada kwenye safu za safu na baiti COLS = 4.

/ * Kitufe cha Nambari na I2C LCD https://tronixstuff.com Inatumia maktaba ya Keypad kwa Arduino https://www.arduino.cc/playground/Code/Keypad na Mark Stanley, Alexander Brevig * /

# pamoja na "Keypad.h"

# pamoja na "Wire.h" // kwa I2C LCD # pamoja na "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // safu nne

const byte COLS = 4; // funguo nne za safu wima [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; Pini za baiti [ROWS] = {5, 4, 3, 2}; // unganisha kwenye pini za safu mlalo za kepi za keypad byte [COLS] = {9, 8, 7, 6}; // unganisha kwenye vifungo vya safu ya keypad int count = 0;

Keypad keypad = Keypad (makeKeymap (funguo), safu za pini, colPins, ROWS, COLS);

kuanzisha batili ()

{Serial.begin (9600); lcd kuanza (16, 2); lcd.print ("Jaribio la keypad!"); kuchelewesha (1000); lcd wazi (); }

kitanzi batili ()

{char ufunguo = keypad.getKey (); ikiwa (ufunguo! = NO_KEY) {lcd.print (ufunguo); Serial.print (ufunguo); hesabu ++; ikiwa (hesabu == 17) {lcd. clear (); hesabu = 0; }}}

Na tena unaweza kuona matokeo ya mchoro hapo juu kwenye video.

Sasa kwa mradi wa mfano, moja ambayo labda ni matumizi yaliyoombwa zaidi ya vitufe vya nambari…

Hatua ya 4: Mfano wa Mradi - Mfumo wa Ufikiaji wa PIN

Matumizi yaliyoombwa zaidi kwa kitufe cha nambari inaonekana kuwa programu ya mtindo wa "PIN", ambapo Arduino imeagizwa kufanya kitu kulingana na nambari sahihi inayoingizwa kwenye kitufe. Mchoro ufuatao hutumia vifaa vilivyoelezewa kwa mchoro uliopita na kutekeleza mfumo wa kuingiza PIN wa tarakimu sita.

Vitendo vya kuchukua vinaweza kuingizwa katika kazi sahihiPIN () na isiyo sahihiPIN (). Na PIN imewekwa katika safu ya siri ya PIN [6]. Kwa kazi ya ziada kidogo unaweza kuunda kazi yako ya kubadilisha PIN pia.

// Kubadilisha PIN na kitufe cha nambari 16 // https://tronixstuff.com # pamoja na "Keypad.h" # pamoja na # pamoja na LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // safu nne

const byte COLS = 4; // funguo nne za safu wima [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; Pini za baiti [ROWS] = {5, 4, 3, 2}; // unganisha kwenye pini za safu mlalo za kepi za keypad byte [COLS] = {9, 8, 7, 6}; // unganisha kwenye vifungo vya safu ya keypad

Keypad keypad = Keypad (makeKeymap (funguo), safu za pini, colPins, ROWS, COLS);

char PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // siri yetu (!) nambari ya jaribio la char [6] = {'0', '0', '0', '0', '0', '0'}; // kutumika kwa kulinganisha int z = 0;

kuanzisha batili ()

{Serial.begin (9600); lcd kuanza (16, 2); lcd.print ("PIN Lock"); kuchelewesha (1000); lcd wazi (); lcd.print ("Ingiza PIN…"); }

batiliPIN () // fanya hii ikiwa PIN sahihi imeingizwa

{lcd.print ("* PIN sahihi *"); kuchelewesha (1000); lcd wazi (); lcd.print ("Ingiza PIN…"); }

batili isiyo sahihiPIN () // fanya hivi ikiwa PIN isiyo sahihi imeingizwa

{lcd.print ("* Jaribu tena *"); kuchelewesha (1000); lcd wazi (); lcd.print ("Ingiza PIN…"); }

kuangalia batiliPIN ()

{int sahihi = 0; int i; kwa (i = 0; i <6; i ++) {

ikiwa (jaribu == PIN )

+ sahihi ++; }} ikiwa (sahihi == 6) {correctPIN (); } mwingine {sio sahihiPIN (); }

kwa (int zz = 0; zz <6; zz ++) {kujaribu [zz] = '0'; }}

kusoma batili ()

{char ufunguo = keypad.getKey (); ikiwa (ufunguo! = NO_KEY) {kujaribu [z] = ufunguo; z ++; kubadili (ufunguo) {kesi '*': z = 0; kuvunja; kesi '#': z = 0; kuchelewesha (100); // kwa lcd ya ziada ya kufuta.. wazi (); kuangaliaPIN (); kuvunja; }}}

kitanzi batili ()

{somaKibodi (); }

Mradi huo umeonyeshwa kwenye video.

Kwa hivyo sasa una uwezo wa kutumia vitufe vya vitufe kumi na mbili na kumi na sita na mifumo yako ya Arduino. Nina hakika utakuja na kitu muhimu na cha kuvutia ukitumia vitufe katika siku za usoni.

Chapisho hili linaletwa kwako na pmdway.com - kila kitu kwa watengenezaji na wapenda umeme, na uwasilishaji wa bure ulimwenguni.

Ilipendekeza: