Turinys:
- 1 žingsnis: Darbo pradžia
- 2 žingsnis: 12 skaitmenų klaviatūros naudojimas
- 3 žingsnis: naudokite 16 skaitmenų klaviatūrą
- 4 žingsnis: Pavyzdinis projektas - PIN prieigos sistema
Video: Skaitinių klaviatūrų naudojimas su „Arduino“: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
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
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:
„Mifare Ultralight C“naudojimas su „RC522“„Arduino“: 3 žingsniai
„Mifare Ultralight C“naudojimas su „RC522“„Arduino“: RFID technologijos naudojimas kortelių turėtojams atpažinti arba įgalioti ką nors daryti (atidaryti duris ir pan.) Yra gana įprastas metodas. „Pasidaryk pats“atveju RC522 modulis yra plačiai naudojamas, nes jis yra gana pigus ir šiam moduliui yra daug kodo. Aš
Infraraudonųjų spindulių jutiklio naudojimas su „Arduino“: 8 žingsniai (su nuotraukomis)
Infraraudonųjų spindulių jutiklio naudojimas su „Arduino“: kas yra infraraudonųjų spindulių (dar žinomas kaip IR) jutiklis? IR jutiklis yra elektroninis prietaisas, kuris nuskaito IR signalus tam tikruose standartų apibrėžtuose dažnių diapazonuose ir paverčia juos elektriniais signalais išvesties kaištyje (paprastai vadinamas signalo kaiščiu) . IR signalas
STM32 naudojimas kaip „Arduino“pamoka - STM32F103C8: 5 žingsniai
STM32 naudojimas kaip „Arduino“pamoka | STM32F103C8: Ei, kas vyksta, vaikinai! Akarsh čia iš „CETech“. Šioje pamokoje apžvelgsime skirtingus STM siūlomus mikrovaldiklius, tokius kaip STM32F103C8, STM32F030F4 ir STM8S103F3. Mes lyginsime šiuos mikroskopus tarpusavyje kartu su
Piešimo roboto naudojimas „Arduino“su kodo valandos pamokomis: 3 žingsniai
Piešimo roboto naudojimas „Arduino“su kodo valandos pamokomis: Sukūriau „Arduino“piešimo robotą dirbtuvėms, kad padėčiau paauglėms merginoms susidomėti STEM temomis (žr. Https://www.instructables.com/id/Arduino-Drawing-Robot/ ). Robotas buvo sukurtas naudoti vėžlio stiliaus programavimo komandas, tokias kaip priekis (distanc
Šarvai iš klaviatūrų: 7 žingsniai
Šarvai iš klaviatūrų: tai yra instrukcija, kaip sukurti šarvų kostiumą iš klaviatūrų rinkinio. Nenaudokite metalinių pjūklų, nes jie dėl to bus sudaužyti ir matydami, kaip tvarkysite įvairius bjaurius prietaisus ir aštrius kraštus, būkite labai atsargūs, kad nesužeistumėte savo