Innholdsfortegnelse:
- Trinn 1: Komme i gang
- Trinn 2: Bruk et 12 -sifret tastatur
- Trinn 3: Bruk et 16 -sifret tastatur
- Trinn 4: Eksempelprosjekt - PIN -tilgangssystem
Video: Bruke numeriske tastaturer med Arduino: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Numeriske tastaturer kan gi et enkelt sluttbrukeralternativ for ulike grensesnitt for prosjektene dine. Eller hvis du trenger mange knapper, kan de spare deg for mye tid når det gjelder konstruksjon. Vi løper gjennom å koble dem sammen, ved hjelp av Arduino -biblioteket og avslutter deretter med en nyttig eksempelskisse.
Trinn 1: Komme i gang
Uansett hvor du får tastaturene fra, sørg for at du kan få databladet - da dette vil gjøre livet lettere når du kobler dem til. For eksempel - bildet i dette trinnet.
Dataarket er viktig, da det vil fortelle deg hvilke pinner eller kontakter på tastaturet som er for radene og kolonnene. Hvis du ikke har databladet - må du manuelt bestemme hvilke kontakter som er for radene og kolonnene.
Dette kan gjøres ved å bruke kontinuitetsfunksjonen til et multimeter (summer). Start med å plassere en sonde på pinne 1, den andre sonden på pinne 2, og trykk på tastene en etter en. Noter deg når en knapp fullfører kretsen, og gå deretter til neste pin. Snart vet du hvilken som er hvilken. For eksempel, på tastaturet er pinnene 1 og 5 for knappen "1 ″, 2 og 5 for" 4 ″, etc …
På dette tidspunktet kan du laste ned og installere Arduino -biblioteket på tastaturet. Nå skal vi demonstrere hvordan du bruker begge tastaturene i enkle eksempler.
Trinn 2: Bruk et 12 -sifret tastatur
Vi bruker det lille svarte tastaturet, en Arduino Uno-kompatibel og en LCD med et I2C-grensesnitt for visningsformål. Hvis du ikke har en LCD -skjerm, kan du alltid sende teksten til den serielle skjermen i stedet.
Koble til LCD -skjermen, og koble deretter tastaturet til Arduino på følgende måte: Tastaturrad 1 til Arduino digital 5Tastaturrad 2 til Arduino digital 4Ktastaturrad 3 til Arduino digital 3Tastaturrad 4 til Arduino digital 2Tastaturkolonne 1 til Arduino digital 8Tastaturkolonne 2 til Arduino digital 7Tastaturkolonne 3 til Arduino digital 6 Hvis tastaturet ditt er annerledes enn vårt, legg merke til linjene i skissen fra:
// definisjon av tastaturtype
Som du trenger å endre tallene i matrikkene rowPins [ROWS] og colPins [COLS]. Du angir de digitale pin -tallene som er koblet til henholdsvis radene og kolonnene på tastaturet.
Videre lagrer matrisetastene verdiene som vises på LCD -skjermen når du trykker på en bestemt knapp. Du kan se at vi har matchet det med det fysiske tastaturet som brukes, men du kan endre det til det du trenger. Men for øyeblikket, skriv inn og last opp følgende skisse når du er fornøyd med tildelingene for rad/pinnummer:
/ * Numerisk tastatur og I2C LCD https://tronixstuff.com Bruker tastaturbibliotek for Arduino https://www.arduino.cc/playground/Code/Keypad av Mark Stanley, Alexander Brevig */
#include "Tastatur.h"
#include "Wire.h" // for I2C LCD #include "LiquidCrystal_I2C.h" // for I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // sett LCD -adressen til 0x27 for 16 tegn og 2 linjers display
// definisjon av tastaturtype
const byte RADER = 4; // fire rader const byte COLS = 3; // tre kolonner tegnetaster [RADER] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // koble til radutklippene til tastaturbyte colPins [COLS] = {8, 7, 6}; // koble til kolonneutklippene på tastaturet
int count = 0;
Tastatur tastatur = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);
ugyldig oppsett ()
{lcd.init (); // initialiser lcd lcd.backlight (); // slå på LCD -bakgrunnsbelysning}
hulrom ()
{char key = tastatur.getKey (); if (nøkkel! = NO_KEY) {lcd.print (nøkkel); telle ++; if (count == 17) {lcd.clear (); telle = 0; }}}
Og resultatene av skissen er vist i videoen. Så nå kan du se hvordan knappetrykkene kan oversettes til data for bruk i en skisse. Vi vil nå gjenta denne demonstrasjonen med det større tastaturet.
Trinn 3: Bruk et 16 -sifret tastatur
Vi bruker det større 4 × 4-tastaturet, en Arduino Uno-kompatibel og for en endring I2C LCD fra Akafugu for visningsformål. Igjen, hvis du ikke har en LCD -skjerm, kan du alltid sende teksten til den serielle skjermen i stedet. Koble LCD -skjermen og koble tastaturet til Arduino på følgende måte:
- Tastaturrad 1 (pin åtte) til Arduino digital 5
- Tastaturrad 2 (pin 1) til Arduino digital 4
- Tastaturrad 3 (pin 2) til Arduino digital 3
- Tastaturrad 4 (pin 4) til Arduino digital 2
- Tastaturkolonne 1 (pin 3) til Arduino digital 9
- Tastaturkolonne 2 (pin 5) til Arduino digital 8
- Tastaturkolonne 3 (pin 6) til Arduino digital 7
- Tastaturkolonne 4 (pinne 7) til Arduino digital 6
Nå til skissen - legg merke til hvordan vi har plass til det større numeriske tastaturet: den ekstra kolonnen i matchtastene den ekstra pinnen i matrisen colPins og byte COLS = 4.
/ * Numerisk tastatur og I2C LCD https://tronixstuff.com Bruker tastaturbibliotek for Arduino https://www.arduino.cc/playground/Code/Keypad av Mark Stanley, Alexander Brevig */
#include "Tastatur.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 RADER = 4; // fire rader
const byte COLS = 4; // fire kolonner tegnetaster [RADER] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // koble til radutklippene til tastaturet byte colPins [COLS] = {9, 8, 7, 6}; // koble til kolonneutkoblinger på tastaturets int count = 0;
Tastatur tastatur = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);
ugyldig oppsett ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Tastatur test!"); forsinkelse (1000); lcd.clear (); }
hulrom ()
{char key = tastatur.getKey (); if (nøkkel! = NO_KEY) {lcd.print (nøkkel); Serial.print (nøkkel); telle ++; if (count == 17) {lcd.clear (); telle = 0; }}}
Og igjen kan du se resultatene av skissen ovenfor i videoen.
Nå for et eksempelprosjekt, et som sannsynligvis er den mest etterspurte bruken av det numeriske tastaturet …
Trinn 4: Eksempelprosjekt - PIN -tilgangssystem
Den mest etterspurte bruken av et numerisk tastatur ser ut til å være en applikasjon med "PIN" -stil, der Arduino blir instruert i å gjøre noe basert på at et riktig tall blir tastet inn på tastaturet. Den følgende skissen bruker maskinvaren beskrevet for forrige skisse og implementerer et sekssifret PIN-system.
Handlingene som skal utføres kan settes inn i funksjonene korrektPIN () og feilPIN (). Og PIN -koden er angitt i matrisen PIN [6]. Med litt ekstra arbeid kan du også lage din egen PIN-endringsfunksjon.
// PIN-bryter med 16-sifret numerisk tastatur // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte RADER = 4; // fire rader
const byte COLS = 4; // fire kolonner tegnetaster [RADER] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // koble til radutklippene til tastaturet byte colPins [COLS] = {9, 8, 7, 6}; // koble til kolonneutklippene på tastaturet
Tastatur tastatur = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);
char PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // vårt hemmelige (!) nummer char -forsøk [6] = {'0', '0', '0', '0', '0', '0'}; // brukt for sammenligning int z = 0;
ugyldig oppsett ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN -lås"); forsinkelse (1000); lcd.clear (); lcd.print ("Skriv inn PIN -kode …"); }
void correctPIN () // gjør dette hvis riktig PIN -kode er angitt
{lcd.print (" * Riktig PIN *"); forsinkelse (1000); lcd.clear (); lcd.print ("Skriv inn PIN -kode …"); }
void incorrectPIN () // gjør dette hvis feil PIN -kode er angitt
{lcd.print (" * Prøv igjen *"); forsinkelse (1000); lcd.clear (); lcd.print ("Skriv inn PIN -kode …"); }
ugid checkPIN ()
{int korrekt = 0; int i; for (i = 0; i <6; i ++) {
hvis (forsøk == PIN )
{riktig ++; }} if (correct == 6) {correctPIN (); } annet {wrongPIN (); }
for (int zz = 0; zz <6; zz ++) {forsøk [zz] = '0'; }}
void readKeypad ()
{char key = tastatur.getKey (); hvis (nøkkel! = NO_KEY) {forsøk [z] = nøkkel; z ++; bryter (nøkkel) {case '*': z = 0; gå i stykker; tilfelle '#': z = 0; forsinkelse (100); // for ekstra debounce lcd.clear (); checkPIN (); gå i stykker; }}}
hulrom ()
{readKeypad (); }
Prosjektet er demonstrert i videoen.
Så nå har du muligheten til å bruke tolv og seksten knappers tastatur med dine Arduino-systemer. Jeg er sikker på at du kommer med noe nyttig og interessant med tastaturene i nær fremtid.
Dette innlegget blir brakt til deg av pmdway.com - alt for produsenter og elektronikkentusiaster, med gratis levering over hele verden.
Anbefalt:
Send numeriske data fra en Arduino til en annen: 16 trinn
Send numeriske data fra en Arduino til en annen: Introduksjon av David Palmer, CDIO Tech. ved Aston University. Trengte du noen gang å sende noen numre fra en Arduino til en annen? Denne instruksen viser hvordan. Du kan enkelt teste det fungerer ved ganske enkelt å skrive inn en streng med tall som skal sendes på S
Hvordan bruke DS1307 Bruke Arduino: 7 trinn
Hvordan bruke DS1307 Bruke Arduino: DS1307 er en sanntidsklokke IC (RTC). Denne IC brukes til å gi tidsdata. Tildelt tid starter fra sekunder, minutt, timer, dager, dato, måned og år. Denne IC krever ytterligere eksterne komponenter som Crystal og 3,6V batterier. Krystall
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: 10 trinn
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: I denne instruksen vil jeg vise hvordan du bruker SplatPost -skriveren av ShinyQuagsire. Uten klare instruksjoner ville noen som ikke har erfaring med kommandolinjen ha litt problemer. Målet mitt er å forenkle trinnene ned til poi
Neopixel Ws2812 Rainbow LED-glød med M5stick-C - Kjører Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: 5 trinn
Neopixel Ws2812 Rainbow LED-glød med M5stick-C | Running Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: Hei folkens i denne instruksen, vi lærer hvordan du bruker neopixel ws2812 LED eller led strip eller led matrise eller led ring med m5stack m5stick-C utviklingstavle med Arduino IDE, og vi skal lage et regnbuemønster med den
Rustning fra tastaturer: 7 trinn
Rustning fra tastaturer: Dette er en instruksjon om hvordan du lager en rustning fra et sett med tastaturer. Ikke bruk hacksager, da de blir ødelagt av dette, og siden du håndterer alle slags ekle apparater og skarpe kanter, vær veldig forsiktig så du ikke skader