INHOUDSOPGAWE:
- Stap 1: Aan die gang
- Stap 2: Gebruik 'n 12 -syfer -toetsbord
- Stap 3: Gebruik 'n 16 -syfer -toetsbord
- Stap 4: Voorbeeldprojek - PIN -toegangstelsel
Video: Gebruik numeriese bedieningsblokke met Arduino: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Numeriese bedieningspanele kan 'n eenvoudige alternatief vir eindgebruikers bied vir verskillende koppelvlakke vir u projekte. Of as u baie knoppies nodig het, kan dit u baie tyd bespaar met betrekking tot konstruksie. Ons verbind hulle met die Arduino -biblioteek en eindig met 'n nuttige voorbeeldskets.
Stap 1: Aan die gang
Maak nie saak waar u die bedieningspanele vandaan kom nie, maak seker dat u die datablad kan kry - dit sal die lewe makliker maak as u dit aanskakel. Byvoorbeeld - die beeld in hierdie stap.
Die gegewensblad is belangrik, aangesien dit u sal vertel watter penne of verbindings op die bedieningspaneel vir die rye en kolomme is. As u nie die gegewensblad het nie - moet u handmatig bepaal watter kontakte vir die rye en kolomme is.
Dit kan gedoen word met behulp van die kontinuïteitsfunksie van 'n multimeter (die zoemer). Begin deur een sonde op pen 1 te plaas, die ander sonde op pen 2, en druk die sleutels een vir een. Teken aan wanneer 'n knoppie die stroombaan voltooi, en gaan dan na die volgende pen. Binnekort sal u weet watter een is. Byvoorbeeld, op die toetsbord is pen 1 en 5 vir knoppie "1", 2 en 5 vir "4", ens …
Laai op hierdie stadium die Arduino -biblioteek van die klavier af en installeer dit. Nou sal ons demonstreer hoe u beide klavierblokke in eenvoudige voorbeelde gebruik.
Stap 2: Gebruik 'n 12 -syfer -toetsbord
Ons gebruik die klein swart klavier, 'n Arduino Uno-versoenbare en 'n LCD met 'n I2C-koppelvlak vir vertoondoeleindes. As u nie 'n LCD het nie, kan u altyd die teks na die seriële monitor stuur.
Bedraad u LCD en koppel die toetsbord op die Arduino op die volgende manier: Toetsenbord ry 1 na Arduino digitaal 5 Toetsenbord ry 2 na Arduino digitaal 4K toetsbord ry 3 met Arduino digitaal 3 Toetsenbord ry 4 met Arduino digitaal 2 toetsenbord kolom 1 tot Arduino digitaal 8 toetsenbord kolom 2 tot Arduino digital 7Keypad column 3 to Arduino digital 6 As u toetsbord anders is as ons s'n, let dan op die reëls in die skets uit:
// sleutelbord tipe definisie
Aangesien u die nommers in die skikkings moet verander rowPins [ROWS] en colPins [COLS]. U voer die digitale speldnommers in wat gekoppel is aan die rye en kolomme van die klavier.
Die sleutelsleutels stoor ook die waardes wat op die LCD vertoon word wanneer 'n spesifieke knoppie ingedruk word. U kan sien dat ons dit pas by die fisiese bedieningspaneel wat u gebruik, maar u kan dit verander na alles wat u nodig het. Maar tik en laai vir eers die volgende skets op sodra u tevrede is met die toewysing van die ry/speldnommer:
/ * Numeriese klavier en I2C LCD https://tronixstuff.com Gebruik sleutelbordbiblioteek vir Arduino https://www.arduino.cc/playground/Code/Keypad deur Mark Stanley, Alexander Brevig */
#sluit "Toetsenbord.h" in
#sluit "Wire.h" // vir I2C LCD in #include "LiquidCrystal_I2C.h" // vir I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // stel die LCD -adres in op 0x27 vir 'n skerm van 16 tekens en 2 reëls
// sleutelbord tipe definisie
const byte RYDE = 4; // vier rye const byte COLS = 3; // drie kolomme char sleutels [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // maak verbinding met die ry -uitknoppies van die sleutelbord -byte colPins [COLS] = {8, 7, 6}; // maak verbinding met die kolomknoppies van die bedieningspaneel
int telling = 0;
Toetsblok -sleutelbord = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);
leemte opstelling ()
{lcd.init (); // initialiseer die lcd lcd.backlight (); // skakel LCD -agtergrond aan}
leemte lus ()
{char key = keypad.getKey (); as (sleutel! = NO_KEY) {lcd.print (sleutel); tel ++; as (count == 17) {lcd.clear (); telling = 0; }}}
En die resultate van die skets word in die video getoon. Nou kan u sien hoe die druk van die knoppies in data omskep kan word vir gebruik in 'n skets. Ons sal hierdie demonstrasie nou herhaal met die groter klavier.
Stap 3: Gebruik 'n 16 -syfer -toetsbord
Ons gebruik die groter 4 × 4-klavier, 'n Arduino Uno-versoenbaar en vir 'n verandering die I2C LCD van Akafugu vir vertoondoeleindes. Weereens, as u nie 'n LCD het nie, kan u altyd die teks na die seriële monitor stuur. Draai die LCD op en koppel die bedieningspaneel op die volgende manier aan die Arduino:
- Toetsenbord ry 1 (pen agt) na Arduino digital 5
- Toetsenbord ry 2 (pen 1) na Arduino digital 4
- Toetsenbord ry 3 (pen 2) na Arduino digital 3
- Toetsenbord ry 4 (pen 4) na Arduino digital 2
- Toetsenbordkolom 1 (pen 3) na Arduino digital 9
- Toetsenbordkolom 2 (pen 5) na Arduino digital 8
- Toetsenbordkolom 3 (pen 6) na Arduino digital 7
- Toetsenbordkolom 4 (pen 7) na Arduino digital 6
Nou vir die skets - let op hoe ons vir die groter numeriese toetsbord toegepas het: die ekstra kolom in die array -sleutels die ekstra pen in die array colPins en die byte COLS = 4.
/ * Numeriese klavier en I2C LCD https://tronixstuff.com Gebruik sleutelbordbiblioteek vir Arduino https://www.arduino.cc/playground/Code/Keypad deur Mark Stanley, Alexander Brevig */
#sluit "Toetsenbord.h" in
#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 RYDE = 4; // vier rye
const byte COLS = 4; // vier kolomme char sleutels [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // maak verbinding met die ry -uitknoppies van die sleutelbord -byte colPins [COLS] = {9, 8, 7, 6}; // maak verbinding met die kolomknoppies van die sleutelbord int count = 0;
Toetsblok -sleutelbord = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);
leemte opstelling ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Toetsbordtoets!"); vertraging (1000); lcd.clear (); }
leemte lus ()
{char key = keypad.getKey (); as (sleutel! = NO_KEY) {lcd.print (sleutel); Serial.print (sleutel); tel ++; as (count == 17) {lcd.clear (); telling = 0; }}}
En weer kan u die resultate van die skets hierbo in die video sien.
Nou vir 'n voorbeeldprojek, een wat waarskynlik die mees gevraagde gebruik van die numeriese toetsbord is …
Stap 4: Voorbeeldprojek - PIN -toegangstelsel
Die mees gevraagde gebruik vir 'n numeriese toetsbord blyk 'n 'PIN'-styl-toepassing te wees, waar die Arduino opdrag kry om iets te doen op grond van 'n korrekte nommer wat op die toetsbord ingevoer word. Die volgende skets gebruik die hardeware wat vir die vorige skets beskryf is en implementeer 'n ses-syfer PIN-invoerstelsel.
Die aksies wat uitgevoer moet word, kan in die funksies correctPIN () en incorrectPIN () ingevoeg word. En die PIN is ingestel in die skikking PIN [6]. Met 'n bietjie ekstra werk kan u ook u eie PIN-veranderingsfunksie skep.
// PIN-skakelaar met 16-syfer numeriese klavier // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte RYDE = 4; // vier rye
const byte COLS = 4; // vier kolomme char sleutels [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // maak verbinding met die ry -uitknoppies van die sleutelbord -byte colPins [COLS] = {9, 8, 7, 6}; // maak verbinding met die kolomknoppies van die bedieningspaneel
Toetsblok -sleutelbord = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);
char PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // ons geheime (!) nommer char poging [6] = {'0', '0', '0', '0', '0', '0'}; // gebruik vir vergelyking int z = 0;
leemte opstelling ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN -slot"); vertraging (1000); lcd.clear (); lcd.print ("Voer PIN in …"); }
void correctPIN () // doen dit as die korrekte PIN ingevoer is
{lcd.print (" * Korrekte PIN *"); vertraging (1000); lcd.clear (); lcd.print ("Voer PIN in …"); }
void incorrectPIN () // doen dit as die verkeerde PIN ingevoer is
{lcd.print (" * Probeer weer *"); vertraging (1000); lcd.clear (); lcd.print ("Voer PIN in …"); }
nietige tjekPIN ()
{int korrek = 0; int ek; vir (i = 0; i <6; i ++) {
as (poging == PIN )
{korrek ++; }} if (correct == 6) {correctPIN (); } anders {incorrectPIN (); }
vir (int zz = 0; zz <6; zz ++) {poging [zz] = '0'; }}
leeg leestoetsbord ()
{char key = keypad.getKey (); as (sleutel! = NO_KEY) {poging [z] = sleutel; z ++; skakelaar (sleutel) {case '*': z = 0; breek; geval '#': z = 0; vertraging (100); // vir ekstra debounce lcd.clear (); checkPIN (); breek; }}}
leemte lus ()
{readKeypad (); }
Die projek word in die video gedemonstreer.
U het dus nou die moontlikheid om met u Arduino-stelsels twaalf en sestien knoppies te gebruik. Ek is seker dat u in die nabye toekoms iets nuttigs en interessant sal vind met die bedieningspanele.
Hierdie pos word deur pmdway.com aan u gebring - alles vir vervaardigers en elektronika -entoesiaste, met gratis aflewering wêreldwyd.
Aanbeveel:
Stuur numeriese data van een Arduino na 'n ander: 16 stappe
Stuur numeriese data van een Arduino na 'n ander: inleiding deur David Palmer, CDIO Tech. aan die Universiteit van Aston. Moes u ooit 'n paar nommers van die een Arduino na die ander stuur? Hierdie instruksies wys hoe. U kan maklik toets of dit werk deur eenvoudig 'n string getalle te tik om by die S te stuur
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: Spesifikasie: Versoenbaar met nodemcu 18650 laaistelselintegrasie aansluiting kan gebruik word vir slaapmodus · 1 voeg by
Hoe om Mac Terminal te gebruik en hoe om sleutelfunksies te gebruik: 4 stappe
Hoe om Mac Terminal te gebruik en hoe om belangrike funksies te gebruik: Ons sal u wys hoe u die MAC Terminal kan oopmaak. Ons sal u ook 'n paar funksies in die Terminal wys, soos ifconfig, veranderende gidse, toegang tot lêers en arp. Met Ifconfig kan u u IP -adres en u MAC -advertensie nagaan
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord te gebruik deur Blynk te gebruik: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -versoenbare bord Beskrywing: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 is 'n WIFI -ontwikkelingsbord gebaseer op ESP8266 12E. Die funksionering is soortgelyk aan dié van NODEMCU, behalwe dat die hardeware gebou is
Hoe om 'n numeriese integrasieprogram in Python op te stel: 10 stappe
Hoe om 'n numeriese integrasieprogram in Python te maak: Dit is 'n handleiding oor hoe om 'n program te skep en uit te voer wat definitiewe integrale evalueer met behulp van 'n numeriese integrasie -algoritme. Ek het die stappe in 3 afdelings verdeel: die algoritme verstaan wat gebruik sal word om die program te maak, die kodering van die