Tartalomjegyzék:

Numerikus billentyűzetek használata Arduino -val: 4 lépés
Numerikus billentyűzetek használata Arduino -val: 4 lépés

Videó: Numerikus billentyűzetek használata Arduino -val: 4 lépés

Videó: Numerikus billentyűzetek használata Arduino -val: 4 lépés
Videó: Weidmüller AC: Communication between Node-Red machines 2024, November
Anonim
Numerikus billentyűzetek használata Arduino -val
Numerikus billentyűzetek használata Arduino -val

A numerikus billentyűzetek egyszerű végfelhasználói alternatívát kínálhatnak a különböző interfészekhez a projektjeihez. Vagy ha sok gombra van szüksége, akkor sok időt takaríthat meg az építéssel kapcsolatban. Végigcsináljuk őket az Arduino könyvtár használatával, majd befejezzük egy hasznos példavázlattal.

1. lépés: Első lépések

Elkezdeni
Elkezdeni

Függetlenül attól, hogy honnan szerezte be a kezelőket, győződjön meg róla, hogy megkapja az adatlapot - ez megkönnyíti az életet a bekötéskor. Például - a kép ebben a lépésben.

Az adatlap fontos, mivel megmondja, hogy a billentyűzeten milyen sorok vagy csatlakozók vannak a sorokhoz és oszlopokhoz. Ha nincs adatlapja - manuálisan kell meghatároznia, hogy mely kapcsolatok tartoznak a sorokhoz és oszlopokhoz.

Ezt megteheti egy multiméter folytonossági funkciójával (a zümmögő). Kezdje azzal, hogy az egyik szondát az 1 -es, a másikat a 2 -es tűre helyezi, és nyomja meg egyenként a gombokat. Jegyezze fel, ha egy gomb befejezi az áramkört, majd lépjen a következő csapra. Hamarosan tudni fogja, melyik melyik. Például a példában a billentyűzet 1 és 5 csapja az „1” gombhoz, a 2 és 5 gomb a „4” gombhoz stb.

Ezen a ponton töltse le és telepítse a billentyűzet Arduino könyvtárát. Most egyszerű példákban bemutatjuk, hogyan kell mindkét billentyűzetet használni.

2. lépés: 12 számjegyű billentyűzet használata

A megjelenítéshez a kis fekete billentyűzetet, az Arduino Uno-kompatibilis és az I2C interfésszel ellátott LCD-t fogjuk használni. Ha nincs LCD -je, akkor a szöveget mindig a soros monitorra küldheti.

Csatlakoztassa az LCD -t, majd csatlakoztassa a billentyűzetet az Arduino -hoz a következő módon: Billentyűzet 1. sor - Arduino digitális 5. billentyűzet 2. sora - Arduino digitális 4K billentyűzet 3. sora - Arduino digitális 3. billentyűzet 4. sor - Arduino digitális 2. billentyűzet 1. oszlop - Arduino digitális 8. billentyűzet 2. oszlop - A billentyűzet 3. oszlopa - Arduino digital 6 Ha a billentyűzet eltér a miénktől, vegye figyelembe a vázlat sorait:

// billentyűzet típus meghatározása

Amint meg kell változtatnia a tömbökben a sorokatPins [ROWS] és colPins [COLS]. Be kell írnia a billentyűzet soraihoz és oszlopaihoz csatlakoztatott digitális PIN -kódokat.

Ezenkívül a tömb billentyűk tárolják az LCD -n megjelenített értékeket egy adott gomb megnyomásakor. Láthatja, hogy illesztettük a használt fizikai billentyűzethez, de bármire megváltoztathatja, amire szüksége van. Most azonban írja be és töltse fel a következő vázlatot, ha elégedett a sor/pin szám kiosztásával:

/ * Numerikus billentyűzet és I2C LCD https://tronixstuff.com Billentyűzet -könyvtárat használ az Arduino számára https://www.arduino.cc/playground/Code/Keyboard by Mark Stanley, Alexander Brevig */

#include "Keypad.h"

#include "Wire.h" // for I2C LCD #include "LiquidCrystal_I2C.h" // I2C busz LCD modul // // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // állítsa az LCD címet 0x27 értékre 16 karakter és 2 soros kijelző esetén

// billentyűzet típus meghatározása

const byte ROWS = 4; // négy sor const byte COLS = 3; // három oszlop char billentyű [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // csatlakozás a billentyűzet sorkapcsaihoz bájt colPins [COLS] = {8, 7, 6}; // csatlakozzon a billentyűzet oszloppisztolyaihoz

int count = 0;

Billentyűzet billentyűzet = Billentyűzet (makeKeymap (billentyűk), rowPins, colPins, ROWS, COLS);

üres beállítás ()

{lcd.init (); // inicializálja az LCD -t lcd.backlight (); // az LCD háttérvilágítás bekapcsolása}

üres hurok ()

{char gomb = keypad.getKey (); if (kulcs! = NO_KEY) {lcd.print (kulcs); gróf ++; if (count == 17) {lcd.clear (); szám = 0; }}}

És a vázlat eredményeit a videó mutatja. Így most láthatja, hogyan lehet a gombnyomásokat lefordítani vázlatban való felhasználásra. Ezt a bemutatót most megismételjük a nagyobb billentyűzettel.

3. lépés: 16 számjegyű billentyűzet használata

Megjelenítés céljából a nagyobb, 4 × 4-es billentyűzetet, egy Arduino Uno-kompatibilis és az A2-es LCD-t használjuk Akafugu-ból. Ismételten, ha nincs LCD -je, akkor a szöveget mindig a soros monitorra küldheti. Csatlakoztassa az LCD -t, majd csatlakoztassa a billentyűzetet az Arduino -hoz a következő módon:

  • Billentyűzet 1. sora (nyolcadik tű) az Arduino digital 5 -hez
  • A billentyűzet 2. sora (1. tű) az Arduino digital 4 -hez
  • A billentyűzet 3. sora (2. tű) az Arduino Digital 3 -hoz
  • A billentyűzet 4. sora (4. tű) az Arduino Digital 2 -hez
  • A billentyűzet 1. oszlopa (3. tű) az Arduino Digital 9 -hez
  • A billentyűzet 2. oszlopa (5. tű) az Arduino Digital 8 -hoz
  • A billentyűzet 3. oszlopa (6. tű) az Arduino digital 7 -hez
  • A billentyűzet 4. oszlopa (7. tű) az Arduino digital 6 -hoz

Most a vázlat - vegye figyelembe, hogyan alkalmazkodtunk a nagyobb számbillentyűzethez: az extra oszlop a tömb char billentyűiben az extra pin a colPins tömbben és a bájt COLS = 4.

/ * Numerikus billentyűzet és I2C LCD https://tronixstuff.com Billentyűzet -könyvtárat használ az Arduino számára https://www.arduino.cc/playground/Code/Keyboard by Mark Stanley, Alexander Brevig */

#include "Keypad.h"

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

const byte ROWS = 4; // négy sor

const bájt COLS = 4; // négy oszlop char billentyű [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [SOROK] = {5, 4, 3, 2}; // csatlakozás a billentyűzet sorkapcsaihoz bájt colPins [COLS] = {9, 8, 7, 6}; // csatlakozás a billentyűzet oszloppisztolyaihoz int count = 0;

Billentyűzet billentyűzet = Billentyűzet (makeKeymap (billentyűk), rowPins, colPins, ROWS, COLS);

üres beállítás ()

{Serial.begin (9600); lcd. kezdet (16, 2); lcd.print ("Billentyűzet teszt!"); késleltetés (1000); lcd.clear (); }

üres hurok ()

{char gomb = keypad.getKey (); if (kulcs! = NO_KEY) {lcd.print (kulcs); Serial.print (kulcs); gróf ++; if (count == 17) {lcd.clear (); szám = 0; }}}

És ismét láthatja a fenti vázlat eredményeit a videóban.

Most egy példa projekt, amely valószínűleg a legkeresettebb számbillentyűzet -használat…

4. lépés: Példaprojekt - PIN -hozzáférési rendszer

A számbillentyűzet legkeresettebb használata egy „PIN” stílusú alkalmazásnak tűnik, ahol az Arduino utasítást kap arra, hogy tegyen valamit a billentyűzeten megadott helyes szám alapján. A következő vázlat az előző vázlathoz leírt hardvert használja, és egy hatjegyű PIN-beviteli rendszert valósít meg.

A végrehajtandó műveletek beilleszthetők a correctPIN () és a helytelenPIN () függvényekbe. A PIN pedig a tömb karakter PIN -kódjában [6] van beállítva. Egy kis plusz munkával létrehozhat saját PIN-kód-módosító funkciót is.

// PIN-kapcsoló 16 számjegyű numerikus billentyűzettel // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // négy sor

const bájt COLS = 4; // négy oszlop char billentyű [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [SOROK] = {5, 4, 3, 2}; // csatlakozás a billentyűzet sorkapcsaihoz bájt colPins [COLS] = {9, 8, 7, 6}; // csatlakozzon a billentyűzet oszloppisztolyaihoz

Billentyűzet billentyűzet = Billentyűzet (makeKeymap (billentyűk), rowPins, colPins, ROWS, COLS);

karakter PIN [6] = {

„1”, „2”, „A”, „D”, „5”, „6”}; // titkos (!) számkísérletünk [6] = {'0', '0', '0', '0', '0', '0'}; // összehasonlításra használt int z = 0;

üres beállítás ()

{Serial.begin (9600); lcd. kezdet (16, 2); lcd.print ("PIN -zár"); késleltetés (1000); lcd.clear (); lcd.print ("Írja be a PIN -kódot …"); }

void correctPIN () // tegye ezt, ha helyes PIN -kódot adott meg

{lcd.print (" * Helyes PIN *"); késleltetés (1000); lcd.clear (); lcd.print ("Írja be a PIN -kódot …"); }

void correctPIN () // tegye ezt, ha helytelen PIN -kódot adott meg

{lcd.print (" * Próbálja újra *"); késleltetés (1000); lcd.clear (); lcd.print ("Írja be a PIN -kódot …"); }

void checkPIN ()

{int helyes = 0; int i; mert (i = 0; i <6; i ++) {

ha (kísérlet == PIN )

{helyes ++; }} if (helyes == 6) {correctPIN (); } else {correctPIN (); }

for (int zz = 0; zz <6; zz ++) {kísérlet [zz] = '0'; }}

void readBillentyűzet ()

{char gomb = keypad.getKey (); if (kulcs! = NO_KEY) {try [z] = kulcs; z ++; kapcsoló (kulcs) {case '*': z = 0; szünet; „#” eset: z = 0; késleltetés (100); // extra visszakapcsoláshoz lcd.clear (); checkPIN (); szünet; }}}

üres hurok ()

{readBillentyűzet (); }

A projektet a videó bemutatja.

Így most tizenkét és tizenhat gombos billentyűzetet használhat Arduino rendszereivel. Biztos vagyok benne, hogy a közeljövőben talál valami hasznosat és érdekeset a billentyűzet használatával.

Ezt a bejegyzést a pmdway.com hozza meg neked - mindent a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.

Ajánlott: