Turinys:

Skaitinių klaviatūrų naudojimas su „Arduino“: 4 žingsniai
Skaitinių klaviatūrų naudojimas su „Arduino“: 4 žingsniai

Video: Skaitinių klaviatūrų naudojimas su „Arduino“: 4 žingsniai

Video: Skaitinių klaviatūrų naudojimas su „Arduino“: 4 žingsniai
Video: Kaip naudotis el. knygų skaitytuvu 2024, Lapkritis
Anonim
Skaitinių klaviatūrų naudojimas su „Arduino“
Skaitinių klaviatūrų naudojimas su „Arduino“

Skaitmeninės klaviatūros gali būti paprasta galutinio vartotojo alternatyva įvairioms jūsų projektų sąsajoms. Arba, jei jums reikia daug mygtukų, jie gali sutaupyti daug laiko statyboms. Mes sujungsime juos naudodami „Arduino“biblioteką ir baigsime naudingu eskizo pavyzdžiu.

1 žingsnis: Darbo pradžia

Darbo pradžia
Darbo pradžia

Nesvarbu, iš kur gaunate klaviatūrą, įsitikinkite, kad galite gauti duomenų lapą - nes tai palengvins jų prijungimą. Pavyzdžiui, vaizdas šiame žingsnyje.

Duomenų lapas yra svarbus, nes jame bus nurodyta, kurie klaviatūros kaiščiai ar jungtys yra skirti eilutėms ir stulpeliams. Jei neturite duomenų lapo - turėsite rankiniu būdu nustatyti, kurie kontaktai skirti eilutėms ir stulpeliams.

Tai galima padaryti naudojant multimetro tęstinumo funkciją (signalizatorius). Pradėkite vieną zondą uždėdami ant 1 kaiščio, kitą - ant 2 kaiščio ir paspauskite klavišus po vieną. Užsirašykite, kada mygtukas užbaigia grandinę, tada pereikite prie kito kaiščio. Netrukus sužinosite, kuris yra kuris. Pavyzdžiui, pavyzdyje klaviatūros kaiščiai 1 ir 5 yra skirti mygtukui „1“, 2 ir 5 - „4“ir kt.

Šiuo metu atsisiųskite ir įdiekite klaviatūros „Arduino“biblioteką. Dabar paprastuose pavyzdžiuose parodysime, kaip naudoti abi klaviatūras.

2 žingsnis: 12 skaitmenų klaviatūros naudojimas

Rodymui naudosime mažą juodą klaviatūrą, suderinamą su „Arduino Uno“ir LCD su I2C sąsaja. Jei neturite LCD, visada galite nusiųsti tekstą į nuoseklųjį monitorių.

Prijunkite LCD ekraną, tada prijunkite klaviatūrą prie „Arduino“tokiu būdu: 1 klaviatūros eilutė prie „Arduino“skaitmeninės 5 klaviatūros eilutės iki „Arduino“skaitmeninės 4K klaviatūros 3 eilutės prie „Arduino“skaitmeninės skaitmeninės klaviatūros 3 eilutė prie „Arduino“skaitmeninės 2 klaviatūros 1 stulpelis prie „Arduino“skaitmeninės 8 klaviatūros „Arduino digital 7“klaviatūros stulpelis nuo 3 iki „Arduino digital 6“Jei jūsų klaviatūra skiriasi nuo mūsų, atkreipkite dėmesį į eskizo eilutes iš:

// klaviatūros tipo apibrėžimas

Kaip jums reikia pakeisti skaičius masyvuose rowPins [ROWS] ir colPins [COLS]. Jūs įvedate skaitmeninius kaiščių skaičius, atitinkamai prijungtus prie klaviatūros eilučių ir stulpelių.

Be to, masyvo klavišai saugo LCD ekrane rodomas vertes, kai paspaudžiamas tam tikras mygtukas. Matote, kad mes ją suderinome su naudojama fizine klaviatūra, tačiau galite ją pakeisti į viską, ko jums reikia. Bet kol kas įveskite ir įkelkite šį eskizą, kai būsite patenkinti eilutės/kaiščio numerių paskirstymu:

/ * Skaitmeninė klaviatūra ir I2C LCD https://tronixstuff.com Naudoja „Arduino“klaviatūros biblioteką https://www.arduino.cc/playground/Code/Klaviatūra, kurią sukūrė Markas Stanley, Aleksandras Brevigas */

#include "Keypad.h"

#include "Wire.h" // I2C LCD #include "LiquidCrystal_I2C.h" // I2C magistralės LCD moduliui // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // nustatykite LCD adresą į 0x27, jei norite rodyti 16 simbolių ir 2 eilutes

// klaviatūros tipo apibrėžimas

const baitas ROWS = 4; // keturios eilutės const baitas COLS = 3; // trijų stulpelių simbolių klavišai [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

baitų rowPins [ROWS] = {

5, 4, 3, 2}; // prisijungti prie klaviatūros eilučių baitų colPins [COLS] = {8, 7, 6}; // prisijungti prie klaviatūros stulpelių kontaktų

int skaičius = 0;

Klaviatūros klaviatūra = klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS);

negaliojanti sąranka ()

{lcd.init (); // inicijuoti lcd lcd.backlight (); // įjunkite LCD apšvietimą}

tuštumos kilpa ()

{char klavišas = keypad.getKey (); if (raktas! = NO_KEY) {lcd.print (raktas); skaičiuoti ++; if (skaičius == 17) {lcd.clear (); skaičius = 0; }}}

O eskizo rezultatai parodyti vaizdo įraše. Taigi dabar galite pamatyti, kaip mygtukų paspaudimus galima išversti į duomenis, kad būtų galima naudoti eskizą. Dabar pakartosime šią demonstraciją su didesne klaviatūra.

3 žingsnis: naudokite 16 skaitmenų klaviatūrą

Rodymo tikslais naudosime didesnę 4 × 4 klaviatūrą, suderinamą su „Arduino Uno“, ir pakeisime „I2C“LCD ekraną iš „Akafugu“. Vėlgi, jei neturite LCD, visada galite nusiųsti tekstą į serijinį monitorių. Prijunkite LCD ekraną ir tada prijunkite klaviatūrą prie „Arduino“tokiu būdu:

  • Klaviatūros 1 eilutė (aštuntas kaištis) į „Arduino digital 5“
  • Klaviatūros 2 eilutė (1 kaištis) į „Arduino digital 4“
  • Klaviatūros 3 eilutė (2 kaištis) į „Arduino digital 3“
  • Klaviatūros 4 eilutė (4 kaištis) į „Arduino digital 2“
  • Klaviatūros 1 stulpelis (3 kaištis) į „Arduino digital 9“
  • Klaviatūros 2 stulpelis (5 kaištis) į „Arduino digital 8“
  • Klaviatūros 3 stulpelis (6 kontaktas) į „Arduino digital 7“
  • Klaviatūros 4 stulpelis (7 kaištis) į „Arduino digital 6“

Dabar eskizas - atkreipkite dėmesį, kaip pritaikėme didesnę skaitinę klaviatūrą: papildomas stulpelis masyvo char klavišuose papildomas kaištis masyve colPins ir baitas COLS = 4.

/ * Skaitmeninė klaviatūra ir I2C LCD https://tronixstuff.com Naudoja „Arduino“klaviatūros biblioteką https://www.arduino.cc/playground/Code/Klaviatūra, kurią sukūrė Markas Stanley, Aleksandras Brevigas */

#include "Keypad.h"

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

const baitas ROWS = 4; // keturios eilutės

const baitas COLS = 4; // keturių stulpelių simbolių klavišai [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baitų rowPins [ROWS] = {5, 4, 3, 2}; // prisijungti prie klaviatūros eilučių baitų colPins [COLS] = {9, 8, 7, 6}; // prisijungti prie klaviatūros stulpelių pinouts int count = 0;

Klaviatūros klaviatūra = klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS);

negaliojanti sąranka ()

{Serial.begin (9600); LCD. pradžia (16, 2); lcd.print ("Klaviatūros testas!"); vėlavimas (1000); lcd.clear (); }

tuštumos kilpa ()

{char klavišas = keypad.getKey (); if (raktas! = NO_KEY) {lcd.print (raktas); Serial.print (raktas); skaičiuoti ++; if (skaičius == 17) {lcd.clear (); skaičius = 0; }}}

Ir vėl galite pamatyti aukščiau eskizo rezultatus vaizdo įraše.

Dabar pavyzdinis projektas, kuris tikriausiai yra labiausiai prašomas skaitmeninės klaviatūros naudojimas …

4 žingsnis: Pavyzdinis projektas - PIN prieigos sistema

Atrodo, kad labiausiai prašoma skaitmeninės klaviatūros naudojimas yra „PIN“stiliaus programa, kur „Arduino“nurodoma ką nors padaryti, atsižvelgiant į teisingą skaičių, įvestą į klaviatūrą. Šiame eskize naudojama ankstesniam eskizui aprašyta aparatinė įranga ir įdiegta šešių skaitmenų PIN įvedimo sistema.

Vykdytini veiksmai gali būti įterpti į funkcijas correctPIN () ir neteisingą PIN (). Ir PIN kodas nustatytas masyvo char PIN [6]. Su šiek tiek papildomo darbo taip pat galite sukurti savo PIN keitimo funkciją.

// PIN jungiklis su 16 skaitmenų klaviatūra // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const baitas ROWS = 4; // keturios eilutės

const baitas COLS = 4; // keturių stulpelių simbolių klavišai [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baitų rowPins [ROWS] = {5, 4, 3, 2}; // prisijungti prie klaviatūros eilučių baitų colPins [COLS] = {9, 8, 7, 6}; // prisijungti prie klaviatūros stulpelių kontaktų

Klaviatūros klaviatūra = klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS);

simbolių PIN kodas [6] = {

„1“, „2“, „A“, „D“, „5“, „6“}; // mūsų slaptas (!) skaičius char bandymas [6] = {'0', '0', '0', '0', '0', '0'}; // naudojamas palyginimui int z = 0;

negaliojanti sąranka ()

{Serial.begin (9600); LCD. pradžia (16, 2); lcd.print („PIN užraktas“); vėlavimas (1000); lcd.clear (); lcd.print ("Įveskite PIN kodą …"); }

void correctPIN () // padarykite tai, jei įvestas teisingas PIN kodas

{lcd.print (" * Teisingas PIN *"); vėlavimas (1000); lcd.clear (); lcd.print ("Įveskite PIN kodą …"); }

void correctPIN () // padarykite tai, jei įvestas neteisingas PIN kodas

{lcd.print (" * Bandykite dar kartą *"); vėlavimas (1000); lcd.clear (); lcd.print ("Įveskite PIN kodą …"); }

void checkPIN ()

{int teisingai = 0; int i; (i = 0; i <6; i ++) {

jei (bandymas == PIN kodas )

{teisingas ++; }} if (correct == 6) {correctPIN (); } else {correctPIN (); }

už (int zz = 0; zz <6; zz ++) {bandymas [zz] = '0'; }}

void readKlaviatūra ()

{char klavišas = keypad.getKey (); if (raktas! = NO_KEY) {bandymas [z] = raktas; z ++; jungiklis (raktas) {case '*': z = 0; pertrauka; atvejis „#“: z = 0; vėlavimas (100); // už papildomą atmetimą lcd.clear (); checkPIN (); pertrauka; }}}

tuštumos kilpa ()

{readKlaviatūra (); }

Projektas demonstruojamas vaizdo įraše.

Taigi dabar su savo „Arduino“sistemomis galite naudoti dvylikos ir šešiolikos mygtukų klaviatūras. Esu tikras, kad artimiausiu metu sugalvosite kažką naudingo ir įdomaus naudodami klaviatūras.

Šį įrašą jums pateikė pmdway.com - viskas gamintojams ir elektronikos entuziastams, nemokamas pristatymas visame pasaulyje.

Rekomenduojamas: