Tartalomjegyzék:
- 1. lépés: Első lépések
- 2. lépés: 12 számjegyű billentyűzet használata
- 3. lépés: 16 számjegyű billentyűzet használata
- 4. lépés: Példaprojekt - PIN -hozzáférési rendszer
Videó: Numerikus billentyűzetek használata Arduino -val: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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:
NAGY alfa-numerikus kijelző: 7 lépés (képekkel)
NAGY Alpha-numerikus KIJELZŐ: Kevés lehetőség van, ha olyan kijelzőre van szüksége, amely a szoba túloldalán látható, egy nagy kijelzőre. Készíthetsz olyat, mint az én "idő négyzet" vagy "led -ek üvegre", de ez körülbelül 40 óra unalmas munkát igényel. Tehát itt van egy egyszerű, hogy nagy kijelzőt készítsen. Az
Arduino Az 1,3 hüvelykes OLED kijelző SH1106 használata: 7 lépés
Arduino Az 1,3 hüvelykes OLED kijelző SH1106 használata: Ebben az oktatóanyagban megtanuljuk, hogyan kell használni az 1,3 hüvelykes SH1106 OLED kijelzőt Arduino és Visuino. Nézze meg a videót
Az Arduino DDS frekvenciajel -generátor használata AD9850: 7 lépés
Az Arduino DDS frekvenciajel -generátor AD9850 használata: Ebben az oktatóanyagban megtanuljuk, hogyan kell frekvenciajel -generátort készíteni egy AD9850 modul és az Arduino segítségével. Nézze meg a videót! rosszabb a magasabb frekvenciákkal
Numerikus adatok küldése egyik Arduino -ból a másikba: 16 lépés
Numerikus adatok küldése egyik Arduino -ból a másikba: Bevezetés: David Palmer, CDIO Tech. az Aston Egyetemen. Volt valaha szükség néhány szám küldésére az egyik Arduino -ról a másikra? Ez az utasítás megmutatja, hogyan. Könnyen kipróbálhatja működését, ha egyszerűen beír egy számsort, amelyet el kell küldeni az S
Hogyan készítsünk numerikus integrációs programot Pythonban: 10 lépés
Hogyan készítsünk numerikus integrációs programot a Pythonban: Ez egy oktatóanyag arról, hogyan lehet létrehozni és futtatni egy olyan programot, amely numerikus integrációs algoritmus segítségével értékeli a meghatározott integrálokat. A lépéseket 3 részre osztottam: a program elkészítéséhez használt algoritmus megértése, kódolása