Sommario:
- Passaggio 1: iniziare
- Passaggio 2: utilizzo di una tastiera a 12 cifre
- Passaggio 3: utilizzo di una tastiera a 16 cifre
- Passaggio 4: progetto di esempio: sistema di accesso al PIN
Video: Utilizzo dei tastierini numerici con Arduino: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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:
Smart Watchz con rilevamento dei sintomi della corona e registrazione dei dati: 10 passaggi
Smart Watchz con rilevamento dei sintomi della corona e registrazione dei dati: questo è uno smartwatch con rilevamento dei sintomi della corona che utilizza LM35 e accelerometro con registrazione dei dati sul server. Rtc viene utilizzato per mostrare l'ora e sincronizzarsi con il telefono e utilizzarlo per la registrazione dei dati. Esp32 è usato come un cervello con controller corteccia con Blue
Invia dati numerici da un Arduino all'altro: 16 passaggi
Invia dati numerici da un Arduino all'altro: introduzione di David Palmer, CDIO Tech. all'Aston University. Hai mai avuto bisogno di inviare dei numeri da un Arduino all'altro? Questo Instructable mostra come. Puoi facilmente testare che funzioni semplicemente digitando una stringa di numeri da inviare al S
Utilizzo separato dei chip a nastro LED: 4 passaggi
Utilizzo separato dei chip a nastro LED: mentre sperimentavo un altro progetto, ho finito per tagliare una lunghezza di nastro LED tra le linee di taglio previste per adattarlo al progetto in questione (non preoccuparti, lo rivelerò quando è finito). Il pezzo non ha funzionato dopo questo taglio in quanto sev
Utilizzo dei moduli orologio in tempo reale DS1307 e DS3231 con Arduino: 3 passaggi
Utilizzo dei moduli di clock in tempo reale DS1307 e DS3231 con Arduino: continuiamo a ricevere richieste su come utilizzare i moduli di clock in tempo reale DS1307 e DS3231 con Arduino da varie fonti, quindi questo è il primo di un tutorial in due parti su come utilizzarli. Per questo tutorial su Arduino abbiamo a disposizione due moduli di clock in tempo reale
Utilizzo dei 4 pin di ESP8266-01: 3 passaggi
Utilizzo dei 4 pin dell'ESP8266-01: Nota: questo progetto è fondamentalmente un'estensione di una precedente istruzione che utilizzava solo 2 pin. Il numero limitato (4) di pin GPIO sull'ESP8266-01 può sembrare un ostacolo, per qualsiasi applicazione seria. Eppure se si usano i pin in modo intelligente è