Obsah:

Používanie numerických klávesníc s Arduino: 4 kroky
Používanie numerických klávesníc s Arduino: 4 kroky

Video: Používanie numerických klávesníc s Arduino: 4 kroky

Video: Používanie numerických klávesníc s Arduino: 4 kroky
Video: Hudební Svět - Klávesová poradna pana Havlíka: 3. díl - "Jak správně připojit USB flash disk" 2024, November
Anonim
Používanie numerických klávesníc s Arduino
Používanie numerických klávesníc s Arduino

Numerické klávesnice môžu poskytovať jednoduchú alternatívu pre koncových používateľov pre rôzne rozhrania pre vaše projekty. Alebo ak potrebujete veľa tlačidiel, môžu vám ušetriť veľa času pri stavbe. Prejdeme ich prepojením pomocou knižnice Arduino a potom skončíme s užitočným príkladom náčrtu.

Krok 1: Začíname

Začíname
Začíname

Bez ohľadu na to, odkiaľ máte klávesnice, uistite sa, že dostanete list s technickými údajmi - pretože to uľahčí ich zapojenie. Napríklad - obrázok v tomto kroku.

Dátový list je dôležitý, pretože vám povie, ktoré piny alebo konektory na klávesnici sú pre riadky a stĺpce. Ak nemáte list s údajmi - budete musieť manuálne určiť, ktoré kontakty sú pre riadky a stĺpce.

To je možné vykonať pomocou funkcie kontinuity multimetra (bzučiaka). Začnite umiestnením jednej sondy na kolík 1, druhej sondy na kolík 2 a postupne stláčajte klávesy. Poznamenajte si, kedy tlačidlo dokončí obvod, a potom sa presuňte na ďalší kolík. Čoskoro budete vedieť, ktoré je ktoré. Napríklad kolíky 1 a 5 klávesnice sú napríklad pre tlačidlo „1“, 2 a 5 pre „4“, atď …

V tomto mieste si stiahnite a nainštalujte knižnicu Arduino klávesnice. Teraz si na jednoduchých príkladoch ukážeme, ako používať obe klávesnice.

Krok 2: Použitie 12 -miestnej klávesnice

Na zobrazenie použijeme malú čiernu klávesnicu, kompatibilnú s Arduino Uno a LCD s rozhraním I2C. Ak nemáte LCD displej, môžete namiesto toho vždy odoslať text na sériový monitor.

Zapojte displej LCD a potom pripojte klávesnicu k Arduinu nasledujúcim spôsobom: Riadok klávesnice 1 k Arduino digital 5 Riadok klávesnice 2 k digitálnemu Arduino 4K Riadok klávesnice 3 k Arduino digital 3 Riadok klávesnice 4 k Arduino digital 2 Stĺpec klávesnice 1 k Arduino digital 8 Stĺpec klávesnice 2 až Arduino digital 7Klávesnica stĺpca 3 až Arduino digital 6 Ak sa vaša klávesnica líši od našej, vezmite na vedomie riadky v náčrte z:

// definícia typu klávesnice

Ako je potrebné zmeniť čísla v poli rowPins [ROWS] a colPins [COLS]. Zadávate číslice digitálnych pinov pripojené k riadkom a stĺpcom klávesnice.

Klávesy poľa okrem toho ukladajú hodnoty zobrazené na LCD displeji po stlačení konkrétneho tlačidla. Môžete vidieť, že sme ho zladili s použitou fyzickou klávesnicou, môžete ho však zmeniť na čokoľvek, čo potrebujete. Ale zatiaľ zadajte a nahrajte nasledujúci náčrt, akonáhle budete spokojní s pridelením čísla riadku/kódu PIN:

/ * Numerická klávesnica a I2C LCD https://tronixstuff.com používa knižnicu klávesníc pre Arduino https://www.arduino.cc/playground/Code/Klávesnica od Marka Stanleyho, Alexandra Breviga */

#include "Keypad.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); // nastavte adresu LCD na 0x27 pre 16 znakový a 2 riadkový displej

// definícia typu klávesnice

konštantný bajt ROWS = 4; // štyri riadky tvoria bajt COLS = 3; // tri stĺpce znaky kľúča [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

bajtové riadky [ROWS] = {

5, 4, 3, 2}; // pripojenie k riadkovým vývodom bajtu klávesnice colPins [COLS] = {8, 7, 6}; // pripojenie k stĺpcovým vývodom klávesnice

počet int = 0;

Klávesnica klávesnice = Klávesnica (makeKeymap (klávesy), rowPins, colPins, ROWS, COLS);

neplatné nastavenie ()

{lcd.init (); // inicializácia lcd lcd.backlight (); // zapnutie podsvietenia LCD}

prázdna slučka ()

{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); počítať ++; if (count == 17) {lcd.clear (); počet = 0; }}}

A výsledky náčrtu sú uvedené vo videu. Teraz teda môžete vidieť, ako je možné stlačenie tlačidiel preložiť do údajov na použitie v náčrte. Teraz túto ukážku zopakujeme s väčšou klávesnicou.

Krok 3: Použitie 16 -miestnej klávesnice

Na zobrazenie použijeme väčšiu klávesnicu 4 × 4, kompatibilnú s Arduino Uno a pre zmenu I2C LCD od Akafugu. Opäť platí, že ak nemáte LCD displej, môžete namiesto toho vždy odoslať text na sériový monitor. Pripojte LCD displej a potom pripojte klávesnicu k Arduinu nasledujúcim spôsobom:

  • Klávesnica radu 1 (kolík osem) na Arduino digital 5
  • Klávesnica radu 2 (kolík 1) na Arduino digital 4
  • Klávesnica radu 3 (kolík 2) na Arduino digital 3
  • Klávesnica radu 4 (kolík 4) na Arduino digital 2
  • Stĺpec klávesnice 1 (kolík 3) na digitál Arduino 9
  • Stĺpec klávesnice 2 (kolík 5) na Arduino digital 8
  • Stĺpec klávesnice 3 (kolík 6) na Arduino digital 7
  • Stĺpec klávesnice 4 (kolík 7) na digitál Arduino 6

Teraz k náčrtu - vezmite na vedomie, ako sme sa prispôsobili väčšej numerickej klávesnici: ďalší stĺpec v klávesoch znaku poľa ďalší kolík v poli colPins a byte COLS = 4.

/ * Numerická klávesnica a I2C LCD https://tronixstuff.com používa knižnicu klávesníc pre Arduino https://www.arduino.cc/playground/Code/Klávesnica od Marka Stanleyho, Alexandra Breviga */

#include "Keypad.h"

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

konštantný bajt ROWS = 4; // štyri riadky

konštantný bajt COLS = 4; // štyri stĺpce znaky kľúča [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bajtové riadky pinov [ROWS] = {5, 4, 3, 2}; // pripojenie k riadkovým vývodom bajtu klávesnice colPins [COLS] = {9, 8, 7, 6}; // pripojenie k stĺpcovým vývodom klávesnice int count = 0;

Klávesnica klávesnice = Klávesnica (makeKeymap (klávesy), rowPins, colPins, ROWS, COLS);

neplatné nastavenie ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Test klávesnice!"); oneskorenie (1000); lcd.clear (); }

prázdna slučka ()

{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); Serial.print (kľúč); počítať ++; if (count == 17) {lcd.clear (); počet = 0; }}}

A opäť môžete vidieť výsledky náčrtu vyššie vo videu.

Teraz k príkladu projektu, ktorý je pravdepodobne najžiadanejším použitím numerickej klávesnice …

Krok 4: Príklad projektu - prístupový systém PIN

Zdá sa, že najžiadanejším použitím numerickej klávesnice je aplikácia v štýle „PIN“, kde je Arduinu pokyn, aby urobil niečo na základe zadania správneho čísla na klávesnici. Nasledujúca skica používa hardvér popísaný pre predchádzajúcu skicu a implementuje šesťmiestny systém zadávania PIN.

Akcie, ktoré sa majú vykonať, je možné vložiť do funkcií správnýPIN () a nesprávnyPIN (). A PIN sa nastavuje v poli char PIN [6]. S trochou práce navyše si môžete vytvoriť aj vlastnú funkciu zmeny PIN.

// Prepínač PIN so 16-miestnou numerickou klávesnicou // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

konštantný bajt ROWS = 4; // štyri riadky

konštantný bajt COLS = 4; // štyri stĺpce znaky kľúča [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bajtové riadky pinov [ROWS] = {5, 4, 3, 2}; // pripojenie k riadkovým vývodom bajtu klávesnice colPins [COLS] = {9, 8, 7, 6}; // pripojenie k stĺpcovým vývodom klávesnice

Klávesnica klávesnice = Klávesnica (makeKeymap (klávesy), rowPins, colPins, ROWS, COLS);

char PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // náš pokus o tajné (!) číslo [6] = {'0', '0', '0', '0', '0', '0'}; // použité na porovnanie int z = 0;

neplatné nastavenie ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print („zámok PIN“); oneskorenie (1000); lcd.clear (); lcd.print („Zadajte PIN …“); }

void correctPIN () // urobte to, ak je zadaný správny PIN

{lcd.print (" * Správny PIN *"); oneskorenie (1000); lcd.clear (); lcd.print („Zadajte PIN …“); }

neplatný nesprávny PIN () // urobte to, ak ste zadali nesprávny PIN

{lcd.print (" * Skúste to znova *"); oneskorenie (1000); lcd.clear (); lcd.print („Zadajte PIN …“); }

neplatný checkPIN ()

{int správne = 0; int i; pre (i = 0; i <6; i ++) {

ak (pokus == PIN )

{správne ++; }} if (correct == 6) {correctPIN (); } else {nesprávnyPIN (); }

pre (int zz = 0; zz <6; zz ++) {pokus [zz] = '0'; }}

void readKeypad ()

{char key = keypad.getKey (); if (key! = NO_KEY) {pokus [z] = kľúč; z ++; prepínač (kľúč) {prípad '*': z = 0; prestávka; prípad '#': z = 0; oneskorenie (100); // pre extra debounce lcd.clear (); checkPIN (); prestávka; }}}

prázdna slučka ()

{readKeypad (); }

Projekt je demonštrovaný na videu.

Teraz teda máte možnosť používať s vašimi systémami Arduino dvanásť a šestnásťtlačidlové klávesnice. Som si istý, že v blízkej budúcnosti vymyslíte pomocou klávesníc niečo užitočné a zaujímavé.

Tento príspevok vám prináša stránka pmdway.com - všetko pre výrobcov a nadšencov elektroniky s bezplatným doručením do celého sveta.

Odporúča: