Sisällysluettelo:

Numeronäppäimistöjen käyttäminen Arduinon kanssa: 4 vaihetta
Numeronäppäimistöjen käyttäminen Arduinon kanssa: 4 vaihetta

Video: Numeronäppäimistöjen käyttäminen Arduinon kanssa: 4 vaihetta

Video: Numeronäppäimistöjen käyttäminen Arduinon kanssa: 4 vaihetta
Video: Näin korjaat Windowsin käynnistysongelmat 2024, Marraskuu
Anonim
Numeronäppäimistöjen käyttäminen Arduinon kanssa
Numeronäppäimistöjen käyttäminen Arduinon kanssa

Numeeriset näppäimistöt voivat tarjota yksinkertaisen vaihtoehdon loppukäyttäjille eri käyttöliittymille projekteillesi. Tai jos tarvitset paljon painikkeita, ne voivat säästää paljon aikaa rakentamiseen. Käymme läpi niiden yhdistämisen Arduino -kirjaston avulla ja lopetamme sitten hyödyllisellä esimerkkiluonnoksella.

Vaihe 1: Aloittaminen

Päästä alkuun
Päästä alkuun

Riippumatta siitä, mistä saat näppäimistön, varmista, että saat käyttöturvallisuustiedotteen - se helpottaa elämää johdotettaessa. Esimerkiksi - kuva tässä vaiheessa.

Tietolomake on tärkeä, koska se kertoo, mitkä näppäimistön nastat tai liittimet ovat rivejä ja sarakkeita varten. Jos sinulla ei ole tietolomaketta - sinun on määritettävä manuaalisesti rivit ja sarakkeet.

Tämä voidaan tehdä käyttämällä yleismittarin jatkuvuustoimintoa (summeri). Aloita asettamalla yksi anturi nastaan 1, toinen anturi nastaan 2 ja paina näppäimiä yksi kerrallaan. Merkitse muistiin, milloin painike suorittaa piirin loppuun, ja siirry sitten seuraavaan nastaan. Pian tiedät mikä on mikä. Esimerkiksi esimerkkinäppäimistön nastat 1 ja 5 ovat painikkeelle "1", 2 ja 5 "4" jne.…

Lataa ja asenna tässä vaiheessa Arduino -näppäimistö. Nyt näytämme, kuinka molempia näppäimistöjä käytetään yksinkertaisissa esimerkeissä.

Vaihe 2: 12 -numeroisen näppäimistön käyttö

Käytämme näyttöä varten pientä mustaa näppäimistöä, Arduino Uno -yhteensopivaa ja LCD-näyttöä, jossa on I2C-liitäntä. Jos sinulla ei ole LCD -näyttöä, voit aina lähettää tekstin sarjamonitoriin.

Kytke LCD -näyttö ja kytke sitten näppäimistö Arduinoon seuraavasti: Näppäimistön rivi 1 - Arduino digital 5 Näppäimistön rivi 2 - Arduino -digitaalinen 4K -näppäimistön rivi 3 - Arduino -digitaalinen 3 Näppäimistön rivi 4 Arduino -digitaaliseen 2 -näppäimistö Sarake 1 - Arduino digital 8 Arduino digital 7 Näppäimistön sarake 3 - Arduino digital 6 Jos näppäimistösi on erilainen kuin meidän, ota huomioon luonnoksen rivit:

// näppäimistötyypin määritelmä

Kun joudut muuttamaan taulukon numeroiden riviäPin [ROWS] ja colPins [COLS]. Syötä näppäimistön riveihin ja sarakkeisiin yhdistetyt digitaaliset nastanumerot.

Lisäksi matriisinäppäimet tallentavat nestekidenäytössä näkyvät arvot tiettyä painiketta painettaessa. Näet, että olemme sovittaneet sen käytetyn fyysisen näppäimistön kanssa, mutta voit muuttaa sen mihin tahansa. Kirjoita ja lähetä nyt kuitenkin seuraava luonnos, kun olet tyytyväinen rivi-/pin -numeroiden jakamiseen:

/ * Numeronäppäimistö ja I2C LCD https://tronixstuff.com Käyttää Arduinon näppäimistökirjastoa https://www.arduino.cc/playground/Code/Keypad, kirjoittanut Mark Stanley, Alexander Brevig */

#include "Keypad.h"

#include "Wire.h" // for I2C LCD #include "LiquidCrystal_I2C.h" // for I2C bus LCD -moduuli // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // aseta LCD -osoitteeksi 0x27, jos haluat 16 merkkiä ja 2 riviä

// näppäimistötyypin määritelmä

const tavu RIVIT = 4; // neljä riviä const tavu COLS = 3; // kolmen sarakkeen char -näppäimet [RIVIT] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

tavu rowPins [ROWS] = {

5, 4, 3, 2}; // muodosta yhteys näppäimistön rivipistoihin tavu colPins [COLS] = {8, 7, 6}; // muodostaa yhteys näppäimistön sarakkeiden pinouteihin

int -luku = 0;

Näppäimistön näppäimistö = Näppäimistö (makeKeymap (näppäimet), rowPins, colPins, ROWS, COLS);

mitätön asennus ()

{lcd.init (); // alustetaan lcd lcd.backlight (); // kytke LCD -taustavalo päälle}

tyhjä silmukka ()

{char -näppäin = keypad.getKey (); if (avain! = NO_KEY) {lcd.print (avain); laskea ++; if (count == 17) {lcd.clear (); määrä = 0; }}}

Ja luonnoksen tulokset näkyvät videossa. Joten nyt voit nähdä, kuinka painikkeen painallukset voidaan muuntaa luonnokseen käytettäväksi dataksi. Toistamme nyt tämän esityksen suuremmalla näppäimistöllä.

Vaihe 3: 16 -numeroisen näppäimistön käyttö

Käytämme suurempaa 4 × 4-näppäimistöä, Arduino Uno -yhteensopivaa ja vaihtamaan I2C-nestekidenäyttöä Akafugusta näyttötarkoituksiin. Jälleen, jos sinulla ei ole LCD -näyttöä, voit aina lähettää tekstin sarjamonitoriin. Kytke LCD -näyttö ja kytke sitten näppäimistö Arduinoon seuraavalla tavalla:

  • Näppäimistön rivi 1 (nasta kahdeksan) Arduino digital 5: een
  • Näppäimistön rivi 2 (nasta 1) Arduino digital 4: een
  • Näppäimistön rivi 3 (nasta 2) Arduino digital 3: een
  • Näppäimistön rivi 4 (nasta 4) Arduino digital 2: een
  • Näppäimistön sarake 1 (nasta 3) - Arduino digital 9
  • Näppäimistön sarake 2 (nasta 5) - Arduino digital 8
  • Näppäimistön sarake 3 (nasta 6) - Arduino digital 7
  • Näppäimistön sarake 4 (nasta 7) - Arduino digital 6

Nyt luonnos - ota huomioon, miten olemme ottaneet käyttöön suuremman numeronäppäimistön: ylimääräinen sarake taulukon char -näppäimissä ylimääräinen nasta taulukossa colPins ja tavu COLS = 4.

/ * Numeronäppäimistö ja I2C LCD https://tronixstuff.com Käyttää Arduinon näppäimistökirjastoa https://www.arduino.cc/playground/Code/Keypad, kirjoittanut Mark Stanley, Alexander Brevig */

#include "Keypad.h"

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

const tavu RIVIT = 4; // neljä riviä

const tavu COLS = 4; // neljän sarakkeen char -näppäimet [RIVIT] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; tavu rowPins [ROWS] = {5, 4, 3, 2}; // muodosta yhteys näppäimistön rivipistoihin tavu colPins [COLS] = {9, 8, 7, 6}; // muodosta yhteys näppäimistön sarakkeiden pinouteihin int count = 0;

Näppäimistön näppäimistö = Näppäimistö (makeKeymap (näppäimet), rowPins, colPins, ROWS, COLS);

mitätön asennus ()

{Serial.begin (9600); lcd. alku (16, 2); lcd.print ("Näppäimistötesti!"); viive (1000); lcd.clear (); }

tyhjä silmukka ()

{char -näppäin = keypad.getKey (); if (avain! = NO_KEY) {lcd.print (avain); Serial.print (avain); laskea ++; if (count == 17) {lcd.clear (); määrä = 0; }}}

Ja jälleen voit nähdä yllä olevan luonnoksen tulokset videosta.

Nyt esimerkkiprojekti, joka on luultavasti halutuin numeerisen näppäimistön käyttö…

Vaihe 4: Esimerkkihanke - PIN -käyttöjärjestelmä

Numeronäppäimistön halutuin käyttö näyttää olevan”PIN” -tyylisovellus, jossa Arduinoa kehotetaan tekemään jotain sen perusteella, että näppäimistö on syötetty oikein. Seuraava luonnos käyttää edellisen luonnoksen laitteistoa ja sisältää kuusinumeroisen PIN-syöttöjärjestelmän.

Tapahtumat voidaan lisätä toimintoihin correctPIN () ja falsePIN (). Ja PIN -koodi asetetaan taulukon char -PIN -koodiin [6]. Pienellä lisätyöllä voit myös luoda oman PIN-koodinvaihtotoiminnon.

// PIN-kytkin 16-numeroisella numeronäppäimistöllä // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const tavu RIVIT = 4; // neljä riviä

const tavu COLS = 4; // neljän sarakkeen char -näppäimet [RIVIT] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; tavu rowPins [ROWS] = {5, 4, 3, 2}; // muodosta yhteys näppäimistön rivipistoihin tavu colPins [COLS] = {9, 8, 7, 6}; // muodostaa yhteys näppäimistön sarakkeiden pinouteihin

Näppäimistön näppäimistö = Näppäimistö (makeKeymap (näppäimet), rowPins, colPins, ROWS, COLS);

char -PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // salainen (!) numeroharjoitusyrityksemme [6] = {'0', '0', '0', '0', '0', '0'}; // käytetään vertailuun int z = 0;

mitätön asennus ()

{Serial.begin (9600); lcd. alku (16, 2); lcd.print ("PIN -lukko"); viive (1000); lcd.clear (); lcd.print ("Anna PIN …"); }

void correctPIN () // tee tämä, jos syötit oikean PIN -koodin

{lcd.print (" * Oikea PIN *"); viive (1000); lcd.clear (); lcd.print ("Anna PIN …"); }

void correctPIN () // tee tämä, jos PIN -koodi on syötetty väärin

{lcd.print (" * Yritä uudelleen *"); viive (1000); lcd.clear (); lcd.print ("Anna PIN …"); }

mitätön checkPIN ()

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

jos (yritä == PIN -koodi )

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

for (int zz = 0; zz <6; zz ++) {yritys [zz] = '0'; }}

tyhjä luku Näppäimistö ()

{char -näppäin = keypad.getKey (); if (avain! = NO_KEY) {try [z] = key; z ++; kytkin (avain) {case '*': z = 0; tauko; tapaus '#': z = 0; viive (100); // lisäpoistumisesta lcd.clear (); checkPIN (); tauko; }}}

tyhjä silmukka ()

{readKeypad (); }

Projekti esitetään videossa.

Joten nyt sinulla on mahdollisuus käyttää kaksitoista ja kuusitoista näppäintä Arduino-järjestelmien kanssa. Olen varma, että keksit jotain hyödyllistä ja mielenkiintoista näppäimistöjen avulla lähitulevaisuudessa.

Tämän viestin tuo sinulle pmdway.com - kaikki valmistajille ja elektroniikan harrastajille, ilmainen toimitus maailmanlaajuisesti.

Suositeltava: