Cuprins:

Utilizarea tastaturilor numerice cu Arduino: 4 pași
Utilizarea tastaturilor numerice cu Arduino: 4 pași

Video: Utilizarea tastaturilor numerice cu Arduino: 4 pași

Video: Utilizarea tastaturilor numerice cu Arduino: 4 pași
Video: Cum se utilizează tastatura Arduino 4x4 descărcați codul 2024, Noiembrie
Anonim
Utilizarea tastaturilor numerice cu Arduino
Utilizarea tastaturilor numerice cu Arduino

Tastaturile numerice pot oferi o alternativă simplă pentru utilizatorul final pentru diverse interfețe pentru proiectele dvs. Sau dacă aveți nevoie de o mulțime de butoane, acestea vă pot economisi mult timp în ceea ce privește construcția. Vom trece prin conectarea lor, utilizând biblioteca Arduino și apoi vom termina cu un exemplu util de schiță.

Pasul 1: Introducere

Noțiuni de bază
Noțiuni de bază

Indiferent de unde primiți tastaturile, asigurați-vă că puteți obține foaia de date - deoarece acest lucru vă va ușura viața atunci când le conectați. De exemplu - imaginea din acest pas.

Foaia de date este importantă, deoarece vă va spune care pini sau conectori de pe tastatură sunt pentru rânduri și coloane. Dacă nu aveți foaia de date - va trebui să determinați manual care sunt contactele pentru rânduri și coloane.

Acest lucru se poate face folosind funcția de continuitate a unui multimetru (buzzer). Începeți prin plasarea unei sonde pe pinul 1, cealaltă sondă pe pinul 2 și apăsați tastele una câte una. Notați când un buton finalizează circuitul, apoi treceți la următorul pin. În curând veți ști care este care. De exemplu, pe exemplul tastaturii pinii 1 și 5 sunt pentru butonul „1 ″, 2 și 5 pentru„ 4 ″, etc …

În acest moment vă rugăm să descărcați și să instalați tastatura Arduino biblioteca. Acum vom demonstra cum să utilizați ambele tastaturi în exemple simple.

Pasul 2: Utilizarea unei tastaturi cu 12 cifre

Vom folosi tastatura mică neagră, un Arduino Uno-compatibil și un LCD cu o interfață I2C în scopul afișării. Dacă nu aveți un ecran LCD, puteți trimite întotdeauna textul la monitorul serial.

Conectați-vă LCD-ul, apoi conectați tastatura la Arduino în modul următor: Tastatura rândul 1 la Arduino digital 5 Tastatura rândul 2 la Arduino digital 4K Tastatura rândul 3 la Arduino digital 3 Tastatura rândul 4 la Arduino digital 2 Tastatura coloana 1 la Arduino digital 8 Tastatura coloana 2 la Arduino digital 7 Tastatura coloana 3 către Arduino digital 6 Dacă tastatura dvs. este diferită de a noastră, luați notă de liniile din schiță din:

// definiție tip tastatură

Deoarece trebuie să schimbați numerele din matricele rowPins [ROWS] și colPins [COLS]. Introduceți numerele de pin digitale conectate respectiv la rândurile și coloanele tastaturii.

Mai mult, tastele matrice stochează valorile afișate pe ecranul LCD atunci când este apăsat un anumit buton. Puteți vedea că l-am asortat cu tastatura fizică utilizată, totuși o puteți schimba cu orice aveți nevoie. Dar, deocamdată, introduceți și încărcați următoarea schiță după ce sunteți mulțumit de alocarea numărului de rânduri / coduri:

/ * Tastatură numerică și ecran LCD I2C https://tronixstuff.com Utilizează biblioteca tastaturii pentru Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /

#includeți „Keypad.h”

#include "Wire.h" // pentru I2C LCD #include "LiquidCrystal_I2C.h" // pentru I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // setați adresa LCD la 0x27 pentru un afișaj de 16 caractere și 2 linii

// definiție tip tastatură

octet const ROWS = 4; // patru rânduri const octet COLS = 3; // trei coloane tastele char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {8, 7, 6}; // conectați-vă la pinouturile coloanei tastaturii

int count = 0;

Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);

configurare nulă ()

{lcd.init (); // inițializați lcd lcd.backlight (); // pornește iluminarea LCD}

bucla nulă ()

{char key = keypad.getKey (); if (cheie! = NO_KEY) {lcd.print (cheie); conta ++; if (count == 17) {lcd.clear (); număr = 0; }}}

Iar rezultatele schiței sunt afișate în videoclip. Deci, acum puteți vedea cum butoanele apăsate pot fi traduse în date pentru a fi utilizate într-o schiță. Acum vom repeta această demonstrație cu tastatura mai mare.

Pasul 3: Utilizarea unei tastaturi cu 16 cifre

Vom folosi tastatura mai mare 4 × 4, compatibilă cu Arduino Uno și pentru schimbarea ecranului LCD I2C de la Akafugu în scopul afișării. Din nou, dacă nu aveți un ecran LCD, puteți trimite întotdeauna textul la monitorul serial. Conectați ecranul LCD și apoi conectați tastatura la Arduino în modul următor:

  • Tastați rândul 1 (pinul opt) la Arduino digital 5
  • Tastatura rândul 2 (pinul 1) la Arduino digital 4
  • Tastatura rândul 3 (pinul 2) la Arduino digital 3
  • Tastați rândul 4 (pinul 4) la Arduino digital 2
  • Tastatura coloana 1 (pinul 3) la Arduino digital 9
  • Tastatura coloana 2 (pinul 5) la Arduino digital 8
  • Tastatura coloana 3 (pinul 6) la Arduino digital 7
  • Tastatura coloana 4 (pinul 7) la Arduino digital 6

Acum, pentru schiță - luați în considerare modul în care ne-am acomodat pentru tastatura numerică mai mare: coloana suplimentară din tastele char de matrice pinul suplimentar din matricea colPins și octetul COLS = 4.

/ * Tastatură numerică și ecran LCD I2C https://tronixstuff.com Utilizează biblioteca tastaturii pentru Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /

#includeți „Keypad.h”

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

octet const ROWS = 4; // patru rânduri

octet const COLS = 4; // patru coloane tastele char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {9, 8, 7, 6}; // conectați-vă la pinout-urile coloanei tastaturii int count = 0;

Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);

configurare nulă ()

{Serial.begin (9600); lcd.inceput (16, 2); lcd.print („Test tastatură!”); întârziere (1000); lcd.clear (); }

bucla nulă ()

{char key = keypad.getKey (); if (cheie! = NO_KEY) {lcd.print (cheie); Serial.print (cheie); conta ++; if (count == 17) {lcd.clear (); număr = 0; }}}

Și din nou, puteți vedea rezultatele schiței de mai sus în videoclip.

Acum, pentru un exemplu de proiect, unul care este probabil cea mai solicitată utilizare a tastaturii numerice …

Pasul 4: Exemplu de proiect - Sistem de acces PIN

Cea mai solicitată utilizare pentru o tastatură numerică pare a fi o aplicație în stil „PIN”, unde Arduino este instruit să facă ceva pe baza unui număr corect introdus în tastatură. Următoarea schiță folosește hardware-ul descris pentru schița anterioară și implementează un sistem de introducere PIN din șase cifre.

Acțiunile care vor avea loc pot fi inserate în funcțiile correctPIN () și incorrectPIN (). Și PIN-ul este setat în matricea PIN [6]. Cu un pic de lucru suplimentar, ați putea crea propria funcție de modificare a codului PIN.

// Comutator PIN cu tastatură numerică din 16 cifre // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

octet const ROWS = 4; // patru rânduri

octet const COLS = 4; // patru coloane tastele char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {9, 8, 7, 6}; // conectați-vă la pinouturile coloanei tastaturii

Tastatură tastatură = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);

cod PIN [6] = {

„1”, „2”, „A”, „D”, „5”, „6”}; // încercarea noastră de număr secret (!) char [6] = {'0', '0', '0', '0', '0', '0'}; // folosit pentru comparație int z = 0;

configurare nulă ()

{Serial.begin (9600); lcd.inceput (16, 2); lcd.print („PIN Lock”); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }

void correctPIN () // faceți acest lucru dacă ați introdus codul PIN corect

{lcd.print ("* PIN corect *"); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }

void incorrectPIN () // faceți acest lucru dacă ați introdus un PIN incorect

{lcd.print ("* Încercați din nou *"); întârziere (1000); lcd.clear (); lcd.print („Introduceți codul PIN …”); }

gol nul PIN ()

{int corect = 0; int i; pentru (i = 0; i <6; i ++) {

if (încercare == PIN )

{corect ++; }} if (corect == 6) {corectPIN (); } else {PIN incorect (); }

for (int zz = 0; zz <6; zz ++) {tentativă [zz] = '0'; }}

anular citire tastatură ()

{char key = keypad.getKey (); if (cheie! = NO_KEY) {încercare [z] = cheie; z ++; comutator (cheie) {caz '*': z = 0; pauză; caz '#': z = 0; întârziere (100); // pentru debounce suplimentar lcd.clear (); checkPIN (); pauză; }}}

bucla nulă ()

{readKeypad (); }

Proiectul este demonstrat în videoclip.

Așadar, acum aveți posibilitatea de a utiliza tastaturi cu douăsprezece și șaisprezece butoane cu sistemele dvs. Arduino. Sunt sigur că veți veni cu ceva util și interesant folosind tastaturile în viitorul apropiat.

Această postare vă este adusă de pmdway.com - totul pentru producătorii și pasionații de electronice, cu livrare gratuită în toată lumea.

Recomandat: