Sadržaj:

Korištenje numeričkih tipkovnica s Arduinom: 4 koraka
Korištenje numeričkih tipkovnica s Arduinom: 4 koraka

Video: Korištenje numeričkih tipkovnica s Arduinom: 4 koraka

Video: Korištenje numeričkih tipkovnica s Arduinom: 4 koraka
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Novembar
Anonim
Korištenje numeričkih tipkovnica s Arduinom
Korištenje numeričkih tipkovnica s Arduinom

Numeričke tastature mogu pružiti jednostavnu alternativu krajnjem korisniku za različita sučelja za vaše projekte. Ili, ako vam je potrebno mnogo dugmadi, mogu vam uštedjeti mnogo vremena u pogledu konstrukcije. Proći ćemo kroz njihovo povezivanje, koristeći Arduino biblioteku, a zatim završiti korisnim primjerom skice.

Korak 1: Početak

Počinjemo
Počinjemo

Bez obzira odakle nabavite svoje tastature, pobrinite se da dobijete tehnički list - jer će vam to olakšati život pri povezivanju. Na primjer - slika u ovom koraku.

List sa podacima je važan jer će vam reći koji su pinovi ili konektori na tastaturi za redove i kolone. Ako nemate podatkovni list - morat ćete ručno odrediti koji su kontakti za redove i stupce.

To se može učiniti pomoću funkcije kontinuiteta multimetra (zujalica). Počnite tako što ćete postaviti jednu sondu na pin 1, drugu sondu na pin 2 i pritisnuti tastere jedan po jedan. Zabilježite kada gumb dovrši krug, a zatim prijeđite na sljedeći pin. Uskoro ćete znati šta je koje. Na primjer, na primjeru pinovi tastera 1 i 5 služe za dugme „1 ″, 2 i 5 za„ 4 ″, itd…

U ovom trenutku preuzmite i instalirajte Arduino biblioteku tipkovnice. Sada ćemo u jednostavnim primjerima pokazati kako se koriste obje tastature.

Korak 2: Upotreba 12 -cifrene tastature

Za potrebe prikaza koristit ćemo malu crnu tastaturu, Arduino Uno-kompatibilnu i LCD sa I2C sučeljem. Ako nemate LCD, uvijek biste umjesto toga mogli poslati tekst na serijski monitor.

Povežite svoj LCD, a zatim povežite tastaturu s Arduinom na sljedeći način: Red tipkovnice 1 do Arduino digitalne 5 tipkovnice red 2 do Arduino digitalne 4 tipkovnice red 3 do Arduino digitalne 3 tipkovnice red 4 do Arduino digitalne 2 tipkovnice stupac 1 do Arduino digitalne 8 tipkovnice stupac 2 do Arduino digitalni 7Keypad stupac 3 do Arduino digitalni 6 Ako se vaša tipkovnica razlikuje od naše, uzmite u obzir redove na skici od:

// definicija tipa tastature

Kako trebate promijeniti brojeve u nizovima, redni pinovi [ROWS] i colPins [COLS]. Unosite digitalne pin brojeve povezane sa redovima i kolonama tastature.

Nadalje, tipke polja spremaju vrijednosti prikazane na LCD -u kada se pritisne određeno dugme. Možete vidjeti da smo ga uskladili s korištenom fizičkom tastaturom, međutim možete ga promijeniti na ono što vam je potrebno. No, za sada unesite i prenesite sljedeću skicu nakon što budete zadovoljni dodjelom broja reda/pina:

/ * Numerička tastatura i I2C LCD https://tronixstuff.com Koristi biblioteku tastature za Arduino https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */

#include "Keypad.h"

#include "Wire.h" // za I2C LCD #include "LiquidCrystal_I2C.h" // for I2C bus module LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // postavite LCD adresu na 0x27 za prikaz od 16 znakova i 2 reda

// definicija tipa tastature

const bajt ROWS = 4; // četiri reda const byte COLS = 3; // tri stupca char ključevi [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

bajt rowPins [ROWS] = {

5, 4, 3, 2}; // povezivanje sa pinout -ovima reda bajta tastature colPins [COLS] = {8, 7, 6}; // povezivanje sa pinout -ovima kolone tastature

int broj = 0;

Tastatura tastature = Tastatura (makeKeymap (tasteri), rowPins, colPins, ROWS, COLS);

void setup ()

{lcd.init (); // inicijalizira lcd lcd.backlight (); // uključite pozadinsko osvjetljenje LCD -a}

void loop ()

{char key = keypad.getKey (); if (ključ! = NO_KEY) {lcd.print (ključ); count ++; if (count == 17) {lcd.clear (); count = 0; }}}

A rezultati skice prikazani su u videu. Dakle, sada možete vidjeti kako se pritiskanje tipki može prevesti u podatke za upotrebu u skici. Sada ćemo ponoviti ovu demonstraciju s većom tastaturom.

Korak 3: Upotreba 16 -cifrene tastature

Koristit ćemo veću tastaturu 4 × 4, Arduino Uno kompatibilnu, a za promjenu I2C LCD iz Akafugua u svrhu prikaza. Opet, ako nemate LCD, uvijek biste umjesto toga mogli poslati tekst na serijski monitor. Povežite LCD, a zatim povežite tastaturu s Arduinom na sljedeći način:

  • Red tipkovnice 1 (pin osam) na Arduino digital 5
  • Red 2 tipkovnice (pin 1) na Arduino digital 4
  • Red 3 tipkovnice (pin 2) na Arduino digital 3
  • Red 4 tipkovnice (pin 4) na Arduino digital 2
  • Stupac tipkovnice 1 (pin 3) na Arduino digital 9
  • Stupac tipkovnice 2 (pin 5) na Arduino digital 8
  • Stupac tipkovnice 3 (pin 6) na Arduino digital 7
  • Stupac tipkovnice 4 (pin 7) na Arduino digital 6

Sada za skicu - uzmite u obzir kako smo se prilagodili većoj numeričkoj tastaturi: dodatni stupac u tipkama char niz dodatni pin u nizu colPins i bajt COLS = 4.

/ * Numerička tastatura i I2C LCD https://tronixstuff.com Koristi biblioteku tastature za Arduino https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */

#include "Keypad.h"

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

const bajt ROWS = 4; // četiri reda

const bajt COLS = 4; // ključevi sa četiri stupca [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bajtovi rowPins [ROWS] = {5, 4, 3, 2}; // povezivanje sa pinout -ovima reda bajta tastature colPins [COLS] = {9, 8, 7, 6}; // povezivanje sa pinout -ovima kolone tastature int count = 0;

Tastatura tastature = Tastatura (makeKeymap (tasteri), rowPins, colPins, ROWS, COLS);

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Test tastature!"); kašnjenje (1000); lcd.clear (); }

void loop ()

{char key = keypad.getKey (); if (ključ! = NO_KEY) {lcd.print (ključ); Serial.print (ključ); count ++; if (count == 17) {lcd.clear (); count = 0; }}}

I opet možete vidjeti rezultate skice iznad u videu.

Sada za primjer projekta, koji je vjerojatno najtraženija upotreba numeričke tastature …

Korak 4: Primjer projekta - PIN pristupni sistem

Čini se da je najtraženija upotreba numeričke tastature aplikacija u stilu "PIN", gdje je Arduino upućeno da učini nešto na osnovu ispravnog broja koji je unet u tastaturu. Sljedeća skica koristi hardver opisan za prethodnu skicu i implementira šestocifreni sistem unosa PIN-a.

Radnje koje treba izvršiti mogu se umetnuti u funkcije correPIN () i wrongPIN (). PIN je postavljen u PIN -u polja [6]. Uz malo dodatnog rada, mogli biste stvoriti i vlastitu funkciju promjene PIN-a.

// PIN prekidač sa 16-cifrenom numeričkom tastaturom // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const bajt ROWS = 4; // četiri reda

const bajt COLS = 4; // ključevi sa četiri stupca [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bajtovi rowPins [ROWS] = {5, 4, 3, 2}; // povezivanje sa pinout -ovima reda bajta tastature colPins [COLS] = {9, 8, 7, 6}; // povezivanje sa pinout -ovima kolone tastature

Tastatura tastature = Tastatura (makeKeymap (tasteri), rowPins, colPins, ROWS, COLS);

char PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // naš pokušaj tajnog (!) broja char [6] = {'0', '0', '0', '0', '0', '0'}; // koristi se za usporedbu int z = 0;

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN zaključavanje"); kašnjenje (1000); lcd.clear (); lcd.print ("Unesite PIN …"); }

void correctPIN () // učinite to ako ste unijeli ispravan PIN

{lcd.print (" * Tačan PIN *"); kašnjenje (1000); lcd.clear (); lcd.print ("Unesite PIN …"); }

void wrongPIN () // učinite to ako ste unijeli pogrešan PIN

{lcd.print (" * Pokušajte ponovo *"); kašnjenje (1000); lcd.clear (); lcd.print ("Unesite PIN …"); }

void checkPIN ()

{int ispravan = 0; int i; za (i = 0; i <6; i ++) {

ako (pokušaj == PIN )

{ispravno ++; }} if (ispravno == 6) {correctPIN (); } else {netočanPIN (); }

for (int zz = 0; zz <6; zz ++) {pokušaj [zz] = '0'; }}

void readKeypad ()

{char key = keypad.getKey (); if (ključ! = NO_KEY) {pokušaj [z] = ključ; z ++; prekidač (ključ) {slučaj '*': z = 0; break; slučaj '#': z = 0; kašnjenje (100); // za dodatno debounce lcd.clear (); checkPIN (); break; }}}

void loop ()

{readKeypad (); }

Projekt je prikazan u videu.

Dakle, sada imate mogućnost korištenja tipkovnica s dvanaest i šesnaest tipki sa vašim Arduino sistemima. Siguran sam da ćete u bliskoj budućnosti s tastaturama smisliti nešto korisno i zanimljivo.

Ovaj post donosi vam pmdway.com - sve za proizvođače i ljubitelje elektronike, uz besplatnu dostavu širom svijeta.

Preporučuje se: