Satura rādītājs:

Ciparu tastatūru izmantošana ar Arduino: 4 soļi
Ciparu tastatūru izmantošana ar Arduino: 4 soļi

Video: Ciparu tastatūru izmantošana ar Arduino: 4 soļi

Video: Ciparu tastatūru izmantošana ar Arduino: 4 soļi
Video: ESP32 Tutorial 10 - Digital counter using Seven Segment Display 74HC595 -ESP32 IoT Learnig kit 2024, Novembris
Anonim
Ciparu tastatūru izmantošana ar Arduino
Ciparu tastatūru izmantošana ar Arduino

Ciparu tastatūras var nodrošināt vienkāršu gala lietotāja alternatīvu dažādām saskarnēm jūsu projektiem. Vai arī, ja jums ir nepieciešams daudz pogu, tās var ietaupīt daudz laika būvniecībā. Mēs veiksim to savienošanu, izmantojot Arduino bibliotēku, un pēc tam pabeigsim ar noderīgu skices piemēru.

1. darbība. Darba sākšana

Darba sākšana
Darba sākšana

Neatkarīgi no tā, no kurienes jūs saņemat tastatūras, pārliecinieties, vai varat iegūt datu lapu - jo tas atvieglos dzīvi, savienojot tās. Piemēram - attēls šajā solī.

Datu lapa ir svarīga, jo tā jums pateiks, kuras tapas vai savienotāji tastatūrā ir rindām un kolonnām. Ja jums nav datu lapas - jums manuāli jānosaka, kuri kontakti ir rindām un kolonnām.

To var izdarīt, izmantojot multimetra nepārtrauktības funkciju (skaņas signālu). Sāciet, ievietojot vienu zondi uz 1. tapas, otru zondi uz 2. tapas un nospiediet taustiņus pa vienam. Pierakstiet, kad poga pabeidz ķēdi, un pēc tam pārejiet uz nākamo tapu. Drīz jūs zināt, kas ir kurš. Piemēram, piemēra tastatūras tapas 1 un 5 ir pogai “1”, 2 un 5 - “4” utt.

Šajā brīdī, lūdzu, lejupielādējiet un instalējiet tastatūras Arduino bibliotēku. Tagad mēs vienkāršos piemēros parādīsim, kā izmantot abas tastatūras.

2. darbība: 12 ciparu tastatūras izmantošana

Displeja nolūkiem mēs izmantosim mazo melno tastatūru, ar Arduino Uno saderīgu un LCD ar I2C saskarni. Ja jums nav LCD, jūs vienmēr varat nosūtīt tekstu uz seriālo monitoru.

Pievienojiet LCD, pēc tam pievienojiet tastatūru Arduino šādā veidā: 1. tastatūras rinda līdz Arduino digitālajai 5. tastatūras 2. rindai līdz Arduino digitālajai 4K 3. tastatūras rindai 3. līdz Arduino digitālajai 3. tastatūras 4. rindai līdz Arduino digitālajai 2. tastatūrai 1. kolonna līdz Arduino digitālajai 8. tastatūras kolonna 2. līdz Arduino digital 7 Taustiņu 3. sleja līdz Arduino digital 6

// tastatūras tipa definīcija

Kā jums ir jāmaina skaitļi masīvos rowPins [ROWS] un colPins [COLS]. Jūs ievadāt ciparu tapu numurus, kas attiecīgi savienoti ar tastatūras rindām un kolonnām.

Turklāt masīva taustiņi saglabā LCD ekrānā parādītās vērtības, nospiežot noteiktu pogu. Jūs varat redzēt, ka esam to saskaņojuši ar izmantoto fizisko tastatūru, tomēr varat to mainīt uz visu nepieciešamo. Bet pagaidām ievadiet un augšupielādējiet šādu skici, kad esat apmierināts ar rindu/tapu numuru piešķiršanu:

/ * Ciparu tastatūra un I2C LCD https://tronixstuff.com Izmanto Arduino tastatūras bibliotēku https://www.arduino.cc/playground/Code/Klaviatūra, ko iesniedza Marks Stenlijs, Aleksandrs Brevigs */

#include "Keypad.h"

#include "Wire.h" // I2C LCD #include "LiquidCrystal_I2C.h" // I2C autobusu LCD modulim // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // iestatiet LCD adresi uz 0x27, lai parādītu 16 rakstzīmes un 2 rindas

// tastatūras tipa definīcija

const baits ROWS = 4; // četras rindas const baits COLS = 3; // trīs kolonnu simbolu taustiņi [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

baits rowPins [ROWS] = {

5, 4, 3, 2}; // izveidot savienojumu ar tastatūras rindu pinouts baitu colPins [COLS] = {8, 7, 6}; // izveidot savienojumu ar tastatūras kolonnu pinouts

int skaits = 0;

Tastatūras tastatūra = tastatūra (makeKeymap (taustiņi), rowPins, colPins, ROWS, COLS);

anulēts iestatījums ()

{lcd.init (); // inicializēt lcd lcd.backlight (); // ieslēgt LCD apgaismojumu}

tukša cilpa ()

{char taustiņš = keypad.getKey (); if (atslēga! = NO_KEY) {lcd.print (atslēga); skaitīt ++; ja (skaits == 17) {lcd.clear (); skaits = 0; }}}

Un skices rezultāti ir parādīti videoklipā. Tātad tagad jūs varat redzēt, kā pogu nospiešanu var pārvērst datos, lai tos izmantotu skicē. Tagad mēs atkārtosim šo demonstrāciju ar lielāku tastatūru.

3. darbība: 16 ciparu tastatūras izmantošana

Mēs izmantosim lielāku 4 × 4 tastatūru, kas ir saderīga ar Arduino Uno, un lai mainītu displeja nolūkos I2C LCD no Akafugu. Atkal, ja jums nav LCD, jūs vienmēr varat nosūtīt tekstu uz seriālo monitoru. Pievienojiet LCD vadu un pēc tam pievienojiet tastatūru Arduino šādā veidā:

  • Tastatūras 1. rinda (astotā tapa) līdz Arduino digital 5
  • Tastatūras 2. rinda (1. tapa) līdz Arduino digital 4
  • Tastatūras 3. rinda (2. tapa) uz Arduino digital 3
  • Tastatūras 4. rinda (4. tapa) uz Arduino digital 2
  • Tastatūras 1. sleja (3. tapa) līdz Arduino digital 9
  • Tastatūras 2. sleja (5. tapa) līdz Arduino digital 8
  • Tastatūras 3. sleja (6. tapa) līdz Arduino digital 7
  • Tastatūras 4. sleja (7. tapa) līdz Arduino digital 6

Tagad par skici - ņemiet vērā, kā mēs esam pielāgojušies lielākajai ciparu tastatūrai: papildu kolonna masīva char taustiņos papildu tapa masīvā colPins un baits COLS = 4.

/ * Ciparu tastatūra un I2C LCD https://tronixstuff.com Izmanto Arduino tastatūras bibliotēku https://www.arduino.cc/playground/Code/Klaviatūra Marks Stenlijs, Aleksandrs Brevigs */

#include "Keypad.h"

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

const baits ROWS = 4; // četras rindas

const baits COLS = 4; // četras kolonnas char taustiņi [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baits rowPins [ROWS] = {5, 4, 3, 2}; // izveidot savienojumu ar tastatūras rindu pinouts baitu colPins [COLS] = {9, 8, 7, 6}; // izveidot savienojumu ar tastatūras kolonnu pinouts int count = 0;

Tastatūras tastatūra = tastatūra (makeKeymap (taustiņi), rowPins, colPins, ROWS, COLS);

anulēts iestatījums ()

{Sērijas sākums (9600); lcd. sākums (16, 2); lcd.print ("Tastatūras tests!"); kavēšanās (1000); lcd.clear (); }

tukša cilpa ()

{char taustiņš = keypad.getKey (); if (atslēga! = NO_KEY) {lcd.print (atslēga); Serial.print (atslēga); skaitīt ++; ja (skaits == 17) {lcd.clear (); skaits = 0; }}}

Un atkal jūs varat redzēt iepriekš redzamās skices rezultātus videoklipā.

Tagad par projekta piemēru, kas, iespējams, ir visvairāk pieprasītais ciparu tastatūras lietojums …

4. solis: projekta piemērs - PIN piekļuves sistēma

Šķiet, ka vispieprasītākais ciparu tastatūras lietojums ir “PIN” stila lietojumprogramma, kurā Arduino tiek uzdots kaut ko darīt, pamatojoties uz tastatūrā ievadītu pareizu numuru. Turpmākajā skicē izmantota iepriekšējai skicei aprakstītā aparatūra un ieviesta sešciparu PIN ievades sistēma.

Veicamās darbības var ievietot funkcijās correctPIN () un nepareiziPIN (). Un PIN ir iestatīts masīva ogles PIN [6]. Ar nelielu papildu darbu jūs varētu izveidot arī savu PIN maiņas funkciju.

// PIN slēdzis ar 16 ciparu ciparu tastatūru // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const baits ROWS = 4; // četras rindas

const baits COLS = 4; // četras kolonnas char taustiņi [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baits rowPins [ROWS] = {5, 4, 3, 2}; // izveidot savienojumu ar tastatūras rindu pinouts baitu colPins [COLS] = {9, 8, 7, 6}; // izveidot savienojumu ar tastatūras kolonnu pinouts

Tastatūras tastatūra = tastatūra (makeKeymap (taustiņi), rowPins, colPins, ROWS, COLS);

ogles PIN [6] = {

“1”, “2”, “A”, “D”, “5”, “6”}; // mūsu slepenais (!) skaitļa simbolu mēģinājums [6] = {'0', '0', '0', '0', '0', '0'}; // izmantots salīdzināšanai int z = 0;

anulēts iestatījums ()

{Sērijas sākums (9600); lcd. sākums (16, 2); lcd.print ("PIN atslēga"); kavēšanās (1000); lcd.clear (); lcd.print ("Ievadiet PIN …"); }

void correctPIN () // dariet to, ja ievadīts pareizs PIN

{lcd.print (" * Pareizais PIN *"); kavēšanās (1000); lcd.clear (); lcd.print ("Ievadiet PIN …"); }

void correctPIN () // dariet to, ja ievadīts nepareizs PIN

{lcd.print (" * Mēģiniet vēlreiz *"); kavēšanās (1000); lcd.clear (); lcd.print ("Ievadiet PIN …"); }

void checkPIN ()

{int pareizi = 0; int i; par (i = 0; i <6; i ++) {

ja (mēģinājums == PIN )

{pareizi ++; }} ja (pareizi == 6) {correctPIN (); } cits {correctPIN (); }

par (int zz = 0; zz <6; zz ++) {mēģinājums [zz] = '0'; }}

void readTastatūra ()

{char taustiņš = keypad.getKey (); ja (atslēga! = NO_KEY) {mēģinājums [z] = atslēga; z ++; slēdzis (atslēga) {case '*': z = 0; pārtraukums; gadījums '#': z = 0; kavēšanās (100); // papildu debounce lcd.clear (); checkPIN (); pārtraukums; }}}

tukša cilpa ()

{readKeypad (); }

Projekts ir demonstrēts video.

Tātad tagad jums ir iespēja ar savām Arduino sistēmām izmantot divpadsmit un sešpadsmit taustiņu tastatūras. Esmu pārliecināts, ka tuvākajā laikā, izmantojot tastatūras, jūs izdomāsit kaut ko noderīgu un interesantu.

Šo ziņu jums sniedz pmdway.com - viss veidotājiem un elektronikas entuziastiem, ar bezmaksas piegādi visā pasaulē.

Ieteicams: