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, Studeni
Anonim
Korištenje numeričkih tipkovnica s Arduinom
Korištenje numeričkih tipkovnica s Arduinom

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

Korak 1: Početak

Početak rada
Početak rada

Bez obzira odakle nabavite tipkovnice, pobrinite se da nabavite podatkovnu tablicu - jer će vam to olakšati život pri povezivanju. Na primjer - slika u ovom koraku.

Tehnički list je važan jer će vam reći koji su pinovi ili konektori na tipkovnici za retke i stupce. Ako nemate podatkovni list - morat ćete ručno odrediti koji su kontakti za retke i stupce.

To se može učiniti pomoću funkcije kontinuiteta multimetra (zujalice). Počnite postavljanjem jedne sonde na pin 1, druge sonde na pin 2 i pritisnite tipke jednu po jednu. Zabilježite kada gumb dovrši krug, a zatim prijeđite na sljedeći pin. Uskoro ćete znati što je koje. Na primjer, na primjeru pinovi tipki 1 i 5 služe za tipku „1 ″, 2 i 5 za„ 4 ″, itd…

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

Korak 2: Upotreba 12 -znamenkasti tipkovnice

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

Povežite svoj LCD, a zatim povežite tipkovnicu s Arduinom na sljedeći način: redak tipkovnice 1 na Arduino digitalnu 5 tipkovnicu red 2 na Arduino digitalnu 4 tipkovnicu red 3 na Arduino digitalnu 3 tipkovnicu red 4 na Arduino digitalnu 2 tipkovnicu stupac 1 na Arduino digitalnu 8 tipkovnicu stupac 2 na Arduino digitalni 7 -tipkovnički stupac 3 do Arduino digitalni 6 Ako se vaša tipkovnica razlikuje od naše, uzmite u obzir retke na skici iz:

// definicija tipa tipkovnice

Kao što morate promijeniti brojeve u nizovima rowPins [ROWS] i colPins [COLS]. Unosite digitalne PIN brojeve povezane s redovima i stupcima tipkovnice.

Nadalje, tipke polja spremaju vrijednosti prikazane na LCD -u kada se pritisne određena tipka. Možete vidjeti da smo ga uskladili s korištenom fizičkom tipkovnicom, no možete ga promijeniti na što god vam je potrebno. No, za sada unesite i prenesite sljedeću skicu kada budete zadovoljni dodjelom broja retka/pina:

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

#include "Tipkovnica.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 retka

// definicija tipa tipkovnice

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

byte rowPins [ROWS] = {

5, 4, 3, 2}; // povezivanje s ispisom reda bajta tipkovnice colPins [COLS] = {8, 7, 6}; // povezivanje s ispisima stupaca tipkovnice

int broj = 0;

Tipkovnica tipkovnice = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);

void setup ()

{lcd.init (); // inicijalizira lcd lcd.backlight (); // uključivanje pozadinskog osvjetljenja LCD -a}

void loop ()

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

A rezultati skice prikazani su u videu. Dakle, sada možete vidjeti kako se pritisci gumba mogu prevesti u podatke za upotrebu u skici. Ponovit ćemo ovu demonstraciju s većom tipkovnicom.

Korak 3: Upotreba 16 -znamenkasti tipkovnice

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

  • Redak tipkovnice 1 (pin osam) na Arduino digital 5
  • Redak tipkovnice 2 (pin 1) na Arduino digital 4
  • Redak tipkovnice 3 (pin 2) na Arduino digital 3
  • Red 4 tipkovnice (pin 4) na Arduino digital 2
  • Stupac tipkovnice 1 (pin 3) za 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 tipkovnici: dodatni stupac u tipkama char niz dodatni pin u nizu colPins i bajt COLS = 4.

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

#include "Tipkovnica.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 byte ROWS = 4; // četiri reda

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

Tipkovnica tipkovnice = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);

void setup ()

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

void loop ()

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

I opet u skici možete vidjeti rezultate gornje skice.

Sada za primjer projekta, vjerojatno najtraženijeg korištenja numeričke tipkovnice …

Korak 4: Primjer projekta - sustav za pristup PIN -u

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

Radnje koje treba poduzeti 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-znamenkasti numeričkom tipkovnicom // https://tronixstuff.com #include "Tipkovnica.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // četiri reda

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

Tipkovnica tipkovnice = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);

PIN za char [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 (" * Ispravan PIN *"); kašnjenje (1000); lcd.clear (); lcd.print ("Unesite PIN …"); }

void wrongPIN () // učinite to ako ste unijeli netoč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 ++) {

if (pokušaj == PIN )

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

za (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; pauza; slučaj '#': z = 0; kašnjenje (100); // za dodatni debounce lcd.clear (); checkPIN (); pauza; }}}

void loop ()

{readKeypad (); }

Projekt je prikazan u videu.

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

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

Preporučeni: