Innholdsfortegnelse:

Bruke numeriske tastaturer med Arduino: 4 trinn
Bruke numeriske tastaturer med Arduino: 4 trinn

Video: Bruke numeriske tastaturer med Arduino: 4 trinn

Video: Bruke numeriske tastaturer med Arduino: 4 trinn
Video: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, November
Anonim
Bruke numeriske tastaturer med Arduino
Bruke numeriske tastaturer med Arduino

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

Starter
Starter

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: