Sommario:

Utilizzo dei tastierini numerici con Arduino: 4 passaggi
Utilizzo dei tastierini numerici con Arduino: 4 passaggi

Video: Utilizzo dei tastierini numerici con Arduino: 4 passaggi

Video: Utilizzo dei tastierini numerici con Arduino: 4 passaggi
Video: Usare un registro a scorrimento shift register con Arduino - #48 2024, Novembre
Anonim
Utilizzo dei tastierini numerici con Arduino
Utilizzo dei tastierini numerici con Arduino

I tastierini numerici possono fornire una semplice alternativa per l'utente finale per varie interfacce per i tuoi progetti. Oppure, se hai bisogno di molti pulsanti, possono farti risparmiare molto tempo per quanto riguarda la costruzione. Esamineremo la loro connessione, utilizzando la libreria Arduino e quindi finiremo con un utile schizzo di esempio.

Passaggio 1: iniziare

Iniziare
Iniziare

Non importa da dove prendi le tue tastiere, assicurati di poter ottenere la scheda tecnica, poiché ciò semplificherà la vita durante il cablaggio. Ad esempio, l'immagine in questo passaggio.

Il foglio dati è importante in quanto ti dirà quali pin o connettori sulla tastiera sono per le righe e le colonne. Se non disponi del foglio dati, dovrai determinare manualmente quali contatti sono per le righe e le colonne.

Questo può essere fatto utilizzando la funzione di continuità di un multimetro (il cicalino). Inizia posizionando una sonda sul pin 1, l'altra sonda sul pin 2 e premi i tasti uno per uno. Prendi nota di quando un pulsante completa il circuito, quindi passa al pin successivo. Presto saprai quale è quale. Ad esempio, nell'esempio i pin 1 e 5 della tastiera sono per il pulsante "1", 2 e 5 per "4", ecc …

A questo punto scarica e installa la libreria della tastiera Arduino. Ora dimostreremo come utilizzare entrambe le tastiere in semplici esempi.

Passaggio 2: utilizzo di una tastiera a 12 cifre

Useremo la piccola tastiera nera, un Arduino Uno compatibile e un LCD con un'interfaccia I2C per scopi di visualizzazione. Se non hai un LCD puoi sempre inviare il testo al monitor seriale.

Collega il tuo LCD quindi collega la tastiera ad Arduino nel modo seguente: Tastiera riga 1 a Arduino digitale 5 Tastiera riga 2 a Arduino digitale 4 Tastiera riga 3 a Arduino digitale 3 Tastiera riga 4 a Arduino digitale 2 Colonna 1 tastiera a Arduino digitale 8 Colonna 2 tastiera a Arduino digital 7Keypad colonna 3 ad Arduino digital 6 Se la tua tastiera è diversa dalla nostra, prendi nota delle linee nello schizzo da:

// definizione del tipo di tastiera

Poiché è necessario modificare i numeri negli array rowPins[ROWS] e colPins[COLS]. Immettere i numeri dei pin digitali collegati rispettivamente alle righe e alle colonne della tastiera.

Inoltre, i tasti array memorizzano i valori visualizzati nell'LCD quando viene premuto un particolare pulsante. Puoi vedere che l'abbiamo abbinato al tastierino fisico utilizzato, tuttavia puoi cambiarlo con quello che ti serve. Ma per ora, inserisci e carica il seguente schizzo una volta che sei soddisfatto delle allocazioni del numero di riga/pin:

/* Tastierino numerico e LCD I2C https://tronixstuff.com Utilizza la libreria Keypad per Arduino https://www.arduino.cc/playground/Code/Keypad di Mark Stanley, Alexander Brevig */

#include "Tastiera.h"

#include "Wire.h" // per LCD I2C #include "LiquidCrystal_I2C.h" // per modulo LCD bus I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd(0x27, 16, 2); // imposta l'indirizzo LCD su 0x27 per un display a 16 caratteri e 2 righe

// definizione del tipo di tastiera

const byte RIGHE = 4; //quattro righe const byte COLS = 3; //tre chiavi di caratteri di colonne[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins[RIGHE] = {

5, 4, 3, 2}; //connettersi ai pinout di riga del byte della tastiera colPins[COLS] = { 8, 7, 6}; //connettersi ai piedini di colonna della tastiera

int conteggio=0;

Tastierino tastierino = Tastierino(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

configurazione nulla()

{ lcd.init(); // inizializza il display lcd lcd.backlight(); // attiva la retroilluminazione dell'LCD }

ciclo vuoto()

{ char chiave = tastiera.getKey(); if (chiave != NO_KEY) { lcd.print(chiave); contare++; if (count==17) { lcd.clear(); conteggio=0; } } }

E i risultati dello schizzo sono mostrati nel video. Quindi ora puoi vedere come le pressioni dei pulsanti possono essere tradotte in dati per l'uso in uno schizzo. Ora ripeteremo questa dimostrazione con la tastiera più grande.

Passaggio 3: utilizzo di una tastiera a 16 cifre

Useremo la tastiera 4×4 più grande, un Arduino Uno compatibile e per cambiare l'LCD I2C di Akafugu per scopi di visualizzazione. Anche in questo caso, se non hai un LCD puoi sempre inviare il testo al monitor seriale. Cablare l'LCD e quindi collegare la tastiera ad Arduino nel modo seguente:

  • Riga 1 della tastiera (pin otto) su Arduino digitale 5
  • Riga tastiera 2 (pin 1) su Arduino digital 4
  • Riga 3 della tastiera (pin 2) per Arduino digital 3
  • Riga 4 della tastiera (pin 4) per Arduino digitale 2
  • Colonna 1 della tastiera (pin 3) ad Arduino digital 9
  • Colonna 2 della tastiera (pin 5) su Arduino digitale 8
  • Colonna 3 della tastiera (pin 6) su Arduino digitale 7
  • Colonna 4 della tastiera (pin 7) ad Arduino digitale 6

Ora per lo schizzo, prendi nota di come abbiamo sistemato il tastierino numerico più grande: la colonna extra nell'array char keysil pin extra nell'array colPinse il byte COLS = 4.

/* Tastierino numerico e LCD I2C https://tronixstuff.com Utilizza la libreria Keypad per Arduino https://www.arduino.cc/playground/Code/Keypad di Mark Stanley, Alexander Brevig */

#include "Tastiera.h"

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

const byte RIGHE = 4; //quattro righe

const byte COLS = 4; //quattro colonne char keys[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins[RIGHE] = { 5, 4, 3, 2}; //connettersi ai pinout di riga della tastiera byte colPins[COLS] = { 9, 8, 7, 6}; //connettersi ai pinout di colonna della tastiera int count=0;

Tastierino tastierino = Tastierino(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

configurazione nulla()

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

ciclo vuoto()

{ char chiave = tastiera.getKey(); if (chiave != NO_KEY) { lcd.print(chiave); Serial.print(chiave); contare++; if (count==17) { lcd.clear(); conteggio=0; } } }

E ancora puoi vedere i risultati dello schizzo sopra nel video.

Ora per un progetto di esempio, uno che è probabilmente l'uso più richiesto del tastierino numerico…

Passaggio 4: progetto di esempio: sistema di accesso al PIN

L'uso più richiesto per un tastierino numerico sembra essere un'applicazione in stile "PIN", in cui ad Arduino viene richiesto di fare qualcosa in base a un numero corretto inserito nel tastierino. Lo schizzo seguente utilizza l'hardware descritto per lo schizzo precedente e implementa un sistema di immissione del PIN a sei cifre.

Le azioni da eseguire possono essere inserite nelle funzioni CorrectPIN() e CorrectPIN(). E il PIN è impostato nell'array char PIN[6]. Con un po' di lavoro in più potresti anche creare la tua funzione di cambio PIN.

// Interruttore PIN con tastierino numerico a 16 cifre// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte RIGHE = 4; //quattro righe

const byte COLS = 4; //quattro colonne char keys[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; byte rowPins[RIGHE] = { 5, 4, 3, 2}; //connettersi ai pinout di riga della tastiera byte colPins[COLS] = { 9, 8, 7, 6}; //connettersi ai piedini di colonna della tastiera

Tastierino tastierino = Tastierino(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

carattere PIN[6]={

'1', '2', 'A', 'D', '5', '6'}; // il nostro numero segreto (!) char tentativo[6]={ '0', '0', '0', '0', '0', '0'}; // usato per il confronto int z=0;

configurazione nulla()

{ Serial.begin(9600); lcd.begin(16, 2); lcd.print("Blocco PIN"); ritardo(1000); lcd.clear(); lcd.print("Inserisci il PIN…"); }

void CorrectPIN() // fallo se è stato inserito il PIN corretto

{ lcd.print("* PIN corretto *"); ritardo(1000); lcd.clear(); lcd.print("Inserisci il PIN…"); }

void CorrectPIN() // fallo se è stato inserito un PIN errato

{ lcd.print(" * Riprova *"); ritardo(1000); lcd.clear(); lcd.print("Inserisci il PIN…"); }

void checkPIN()

{ int corretto=0; int io; for (i = 0; i < 6; i++) {

if (tentativo==PIN)

{ corretto++; } } if (corretto==6) { correttoPIN(); } else { PIN errato(); }

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

void readKeypad()

{ char chiave = tastiera.getKey(); if (chiave != NO_KEY) { tentativo[z]=chiave; z++; switch(key) { case '*': z=0; rottura; caso '#': z=0; ritardo(100); // per l'antirimbalzo extra lcd.clear(); checkPIN(); rottura; } } }

ciclo vuoto()

{ readKeypad(); }

Il progetto è mostrato nel video.

Quindi ora hai la possibilità di utilizzare tastiere a dodici e sedici pulsanti con i tuoi sistemi Arduino. Sono sicuro che nel prossimo futuro troverai qualcosa di utile e interessante utilizzando le tastiere.

Questo post è offerto da pmdway.com: tutto per produttori e appassionati di elettronica, con consegna gratuita in tutto il mondo.

Consigliato: