Kazalo:

Uporaba številskih tipkovnic z Arduinom: 4 koraki
Uporaba številskih tipkovnic z Arduinom: 4 koraki

Video: Uporaba številskih tipkovnic z Arduinom: 4 koraki

Video: Uporaba številskih tipkovnic z Arduinom: 4 koraki
Video: Marlin Firmware - VScode - Marlin Example File Guide 2024, November
Anonim
Uporaba številskih tipkovnic z Arduinom
Uporaba številskih tipkovnic z Arduinom

Številčne tipkovnice lahko ponujajo preprosto alternativo končnim uporabnikom za različne vmesnike za vaše projekte. Če pa potrebujete veliko gumbov, vam lahko prihranijo veliko časa pri gradnji. Skozi povezovanje jih bomo uporabili s knjižnico Arduino, nato pa zaključili s koristno zgledno skico.

1. korak: Začnite

Začetek
Začetek

Ne glede na to, od kod dobite tipkovnice, poskrbite, da boste dobili podatkovni list - saj bo to olajšalo življenje, ko jih povežete. Na primer - slika v tem koraku.

Podatkovni list je pomemben, saj vam bo povedal, kateri zatiči ali priključki na tipkovnici so za vrstice in stolpce. Če nimate podatkovnega lista - boste morali ročno določiti, kateri stiki so za vrstice in stolpce.

To lahko storite s funkcijo kontinuitete multimetra (brenčalo). Začnite tako, da eno sondo postavite na nožico 1, drugo sondo na nožico 2 in pritisnete tipke eno za drugo. Zapomnite si, kdaj gumb zaključi vezje, nato se pomaknite na naslednji pin. Kmalu boste vedeli, kaj je kaj. Na primer, zatiča tipkovnice 1 in 5 sta za tipko „1 ″, 2 in 5 za„ 4 ″ itd …

Na tej točki prenesite in namestite knjižnico Arduino na tipkovnici. Zdaj bomo v preprostih primerih pokazali, kako uporabljati obe tipkovnici.

2. korak: Uporaba 12 -mestne tipkovnice

Za namene prikaza bomo uporabili majhno črno tipkovnico, združljivo z Arduino Uno in LCD z vmesnikom I2C. Če nimate LCD -ja, lahko besedilo vedno pošljete na serijski monitor.

Priključite svoj LCD in nato tipkovnico povežite z Arduinom na naslednji način: Vrstica tipkovnice 1 do Arduino digitalne 5 Tipkovnica vrstica 2 do Arduino digitalna 4 Tipkovnica vrstica 3 do Arduino digitalna 3 Tipkovnica vrstica 4 do Arduino digitalna 2 Tipkovnica stolpec 1 do Arduino digitalna tipkovnica 8 Tipkovnica 2 do Arduino digitalni 7 -tipkovniški stolpec 3 do Arduino digitalni 6 Če je vaša tipkovnica drugačna od naše, upoštevajte vrstice na skici od:

// definicija vrste tipkovnice

Ker morate spremeniti številke v matrikah Vrstice [ROWS] in ColPins [COLS]. Vnesete številke digitalnih pin, ki so povezane z vrsticami in stolpci tipkovnice.

Poleg tega matrične tipke shranijo vrednosti, prikazane na LCD -zaslonu, ko pritisnete določeno tipko. Vidite, da smo ga ujemali z uporabljeno fizično tipkovnico, vendar ga lahko spremenite tako, kot želite. Toda zaenkrat vnesite in naložite naslednjo skico, ko boste zadovoljni z dodelitvijo številke vrstice/pina:

/ * Numerična tipkovnica in I2C LCD https://tronixstuff.com uporablja knjižnico tipkovnic 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); // nastavite naslov LCD na 0x27 za 16 -mestni in 2 -vrstni prikaz

// definicija vrste tipkovnice

const byte ROWS = 4; // štiri vrstice const byte COLS = 3; // znaki za tri stolpce [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // povežemo se z odmiki vrstice bajta tipkovnice colPins [COLS] = {8, 7, 6}; // povežemo se z izpiski stolpcev na tipkovnici

int count = 0;

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

void setup ()

{lcd.init (); // inicializiramo lcd lcd.backlight (); // vklop osvetlitve zaslona LCD}

void loop ()

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

In rezultati skice so prikazani v videu. Zdaj lahko vidite, kako pritiske na gumbe lahko pretvorimo v podatke za uporabo v skici. Zdaj bomo to predstavitev ponovili z večjo tipkovnico.

3. korak: Uporaba 16 -mestne tipkovnice

Za namene prikaza bomo uporabili večjo tipkovnico 4 × 4, združljivo z Arduino Uno in za spremembo LCD I2C iz Akafuguja. Še enkrat, če nimate LCD -ja, lahko besedilo vedno pošljete na serijski monitor. Priključite LCD in nato tipkovnico priključite na Arduino na naslednji način:

  • Vrstica tipkovnice 1 (osmica) na Arduino digital 5
  • Vrstica tipkovnice 2 (pin 1) do Arduino digital 4
  • Vrstica tipkovnice 3 (pin 2) do Arduino digital 3
  • Vrstica tipkovnice 4 (pin 4) do Arduino digital 2
  • Stolpec tipkovnice 1 (pin 3) za Arduino digital 9
  • Stolpec tipkovnice 2 (pin 5) za Arduino digital 8
  • Stolpec tipkovnice 3 (pin 6) za Arduino digital 7
  • Stolpec tipkovnice 4 (pin 7) za Arduino digital 6

Zdaj za skico - upoštevajte, kako smo se prilagodili večji številski tipkovnici: dodatni stolpec v tipkah char char dodatni pin v matriki colPins in bajt COLS = 4.

/ * Numerična tipkovnica in I2C LCD https://tronixstuff.com uporablja knjižnico tipkovnic za Arduino https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */

#include "Tipkovnica.h"

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

const byte ROWS = 4; // štiri vrstice

const bajt COLS = 4; // znaki za štiri stolpce [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // povežemo se z izpisi vrstice bajta tipkovnice colPins [COLS] = {9, 8, 7, 6}; // povežemo se z izpisi stolpcev tipkovnice int count = 0;

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

void setup ()

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

void loop ()

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

In spet si lahko ogledate rezultate skice zgoraj v videu.

Zdaj za primer projekta, ki je verjetno najbolj zahtevana uporaba številske tipkovnice …

4. korak: Primer projekta - sistem za dostop do PIN

Zdi se, da je najbolj zahtevana uporaba številske tipkovnice aplikacija v slogu "PIN", kjer je Arduino naročeno, da naredi nekaj na podlagi pravilne številke, ki je vnesena v tipkovnico. Naslednja skica uporablja strojno opremo, opisano za prejšnjo skico, in izvaja šestmestni sistem za vnos PIN.

Dejanja, ki jih je treba izvesti, je mogoče vstaviti v funkcije correPIN () in wrongPIN (). Koda PIN je nastavljena v matrični kodi PIN [6]. Z malo dodatnega dela bi lahko ustvarili tudi lastno funkcijo spreminjanja kode PIN.

// PIN stikalo s 16-mestno številsko tipkovnico // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // štiri vrstice

const bajt COLS = 4; // znaki za štiri stolpce [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // povežemo se z izpisi vrstice bajta tipkovnice colPins [COLS] = {9, 8, 7, 6}; // povežemo se z izpiski stolpcev na tipkovnici

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

PIN PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // naš skrivni (!) poskus številke char [6] = {'0', '0', '0', '0', '0', '0'}; // uporabljeno za primerjavo int z = 0;

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); zamuda (1000); lcd.clear (); lcd.print ("Vnesite PIN …"); }

void correctPIN () // to storite, če ste vnesli pravilen PIN

{lcd.print (" * Pravilna PIN *"); zamuda (1000); lcd.clear (); lcd.print ("Vnesite PIN …"); }

void wrongPIN () // to storite, če je vnesen napačen PIN

{lcd.print (" * Poskusi znova *"); zamuda (1000); lcd.clear (); lcd.print ("Vnesite PIN …"); }

void checkPIN ()

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

če (poskus == PIN )

{pravilno ++; }} if (pravilno == 6) {correctPIN (); } else {napačenPIN (); }

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

void readKeypad ()

{char key = keypad.getKey (); if (ključ! = NO_KEY) {poskus [z] = ključ; z ++; stikalo (ključ) {primer '*': z = 0; zlom; primer '#': z = 0; zamuda (100); // za dodatno razpravo lcd.clear (); checkPIN (); zlom; }}}

void loop ()

{readKeypad (); }

Projekt je prikazan v videu.

Tako imate zdaj možnost uporabljati tipkovnice z dvanajstimi in šestnajstimi gumbi s svojimi sistemi Arduino. Prepričan sem, da boste v bližnji prihodnosti s tipkovnicami našli kaj uporabnega in zanimivega.

To objavo vam ponuja pmdway.com - vse za ustvarjalce in navdušence nad elektroniko z brezplačno dostavo po vsem svetu.

Priporočena: