I progetti in cui è richiesto l'input dall'utente per eseguire il codice Arduino, le tastiere vengono normalmente utilizzate. Le tastiere sono la forma corta delle tastiere che possono essere utilizzate per eseguire funzioni necessarie come l'immissione di qualsiasi valore di carattere o valore numerico. Allo stesso modo, possiamo utilizzare un modulo di visualizzazione LCD per visualizzare l'input dato manualmente usando una tastiera o da qualsiasi sensore al codice Arduino. Inoltre, gli output possono essere visualizzati anche sul LCD per una migliore interpretazione del codice Arduino. Abbiamo realizzato un piccolo progetto di tastiera di interfaccia con Arduino e visualizzando l'ingresso della tastiera sul LCD.
Come interfacciarsi la tastiera con Arduino
La tastiera normalmente è disponibile in due dimensioni una è 3 × 3 e l'altra è 4 × 4, quindi qui in questo progetto stiamo usando una tastiera 4 × 4. Lo schema del circuito dell'interfaccia della tastiera con Arduino e la visualizzazione dell'ingresso su LCD è:
Implementazione hardware
I componenti che abbiamo usato per visualizzare l'ingresso della tastiera su LCD usando Arduino sono:
- Arduino Uno
- Collegamento dei fili
- Potenziometro
- Una tastiera a membrana 4 × 4
- Schermo a cristalli liquidi
- Breadboard
Abbiamo usato la breadboard per interfacciarsi l'LCD con Arduino, mentre abbiamo collegato direttamente la tastiera con Arduino Uno Board. Questo può essere illustrato dalla figura indicata di seguito e abbiamo usato il potenziometro per controllare la luminosità del LCD.
Codice Arduino per la visualizzazione dell'ingresso della tastiera su LCD
In questo progetto il programma Arduino sta calcolando un indice di massa corporea (BMI) prendendo il peso e l'altezza della persona come input dalla tastiera. Per calcolare l'IMC abbiamo usato la seguente formula:
BMI = (peso [kg]/altezza [cm]*altezza [cm])*10000;
Per calcolare l'IMC in un sistema metrico e principalmente l'altezza è misurata in centimetri, quindi abbiamo convertito l'altezza in metri moltiplicando l'intero risultato per 10.000.
#include // libreria per la tastiera
#include // libreria per LCD
LiquidCrystal LCD (A1, A0, 5, 4, 3, 2); // Pin Arduino per LCD
ROWS BYTE const = 4; // Inizializzazione delle righe della tastiera
const byte cols = 4; // inizializza le colonne di tastiera
char keys [righe] [cols] = // dando valori a ciascuna chiave della tastiera
'1', '2', '3', '&',
'4', '5', '6', 'b',
'7', '8', '9', 'C',
'*', '0', '=', 'd'
;
Byte RowPins [ROWS] = 13,12,11,10; // pin Arduino per file di tastiera
byte colpins [cols] = 9,8,7,6; // pin Arduino per colonne di tastiera
KeyPad MyKeyPad = KeyPad (MakeKeyMap (chiavi), Rowpins, Colpins, Rows, Cols); /* funzione per mappare i valori sui tasti*/
// Assegnazione del tipo di dati booleani alle variabili e inizializzarle con zero
booleano presente = false;
booleano successivo = false;
booleano finale = false;
Stringa num1, num2; // variabili per visualizzare l'ingresso intero della tastiera
fluttuare ans; // variabile per conservare il risultato dell'IMC
char op; // assegnare il tipo di dati del carattere per il carattere utilizzato per BMI
void setup ()
LCD.Inizia (16,2); // Inizializzazione del LCD
LCD.setcursor (3,0); // Impostazione del luogo per la visualizzazione della prima riga di dati
LCD.print ("LinuxHint"); // Dati da visualizzare
LCD.setCursor (1,1); // Impostazione del luogo per la visualizzazione della seconda riga di dati
LCD.print ("Calcolatrice BMI"); // Dati da visualizzare
ritardo (2000); // ora per il quale i dati verranno visualizzati su LCD
LCD.Clear (); // Clearing the LCD
LCD.setCursor (0,0); // Impostazione del luogo per la visualizzazione della seconda riga di dati
LCD.print ("immettere wgt & hgt"); // dati da visualizzare
void loop ()
// utilizzando la funzione getkey per ottenere il valore del tasto premuto
CHARD CHIAVE = MyKeypad.getKey ();
if (chiave != No_key && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9' || key == '0')) // Controlla quale tasto viene premuto controllando il suo valore intero
se presente != vero)
num1 = num1 + chiave; // memorizzazione del valore del tasto premuto in num1
Float NumLength = Num1.lunghezza();
LCD.setCursor (0, 1); /* decaling il luogo in cui verrà visualizzata la prima voce*/
LCD.print (num1); // Stampa il primo numero inserito
altro
Num2 = Num2 + Key; // memorizzazione del valore del secondo tasto premuto in Num2
Float numLength = num2.lunghezza();
LCD.SetCursor (4, 1);/*Decaling il luogo in cui verrà visualizzata la seconda voce*/
LCD.print (num2); // Stampa il secondo numero inserito
finale = vero;
// Condizione Se il tasto ha l'operatore assegnato per il calcolo di BMI viene premuto
else if (present == false && key != No_key && (key == '&'))
if (presente == false)
presente = vero;
op = chiave; // Salvare il tasto premuto per il calcolo dell'IMC
LCD.setcursor (3,1); // Impostazione del posto per la visualizzazione dei dati
LCD.stampa (op); // Visualizzazione del carattere utilizzato per BMI
// Condizioni per calcolare l'IMC
else if (finale == true && key != No_key && key == '=')
if (op == '&')
Ans = (num1.tofloat () / (num2.tofloat ()*num2.tofloat ()))*10000; // formula per calcolare l'IMC
LCD.setCursor (0,2); // Impostazione del posto per la visualizzazione dei dati
LCD.stampa ("Il tuo BMI è:"); // Dati da visualizzare
LCD.stampa (Ans); // Visualizzazione della risposta per il calcolo di BMI
LCD.Clear (); // Clearing the LCD
Se (Ans<18.5) // if BMI is less than 18.5 then you are under weight
LCD.setCursor (0,0);
LCD.stampa ("tu sei");
LCD.setCursor (0,1);
LCD.stampa ("sotto peso");
altro se (Ans<25)// if BMI is less than 25 then you have normal weight
LCD.setCursor (0,0);
LCD.stampa ("tu hai");
LCD.setCursor (0,1);
LCD.stampa ("peso normale");
altro se (Ans<30) if BMI is less than 30 then you are over weight
LCD.setCursor (0,0);
LCD.stampa ("tu sei");
LCD.setCursor (0,1);
LCD.Stampa ("Over Peso")
else // altro sei obeso
LCD.stampa ("sei obeso");
ritardo (2000); // tempo o che verranno visualizzati i dati
// condizione per cancellare il LCD o avviare nuovamente il codice Arduino
altro se (chiave != No_key && key == 'c')
LCD.chiaro();
presente = false;
finale = false;
setup (); // chiamando la funzione di configurazione per avviare nuovamente il codice
num1 = "";
num2 = "";
Ans = 0;
op = ";
Per calcolare l'IMC, abbiamo compilato il codice Arduino in modo tale che prima abbiamo definito le librerie della tastiera e LCD e i pin dell'Arduino sono assegnati per LCD. Successivamente dopo aver inizializzato la dimensione della tastiera, abbiamo dato un valore a ciascuna chiave della tastiera creando una stringa.
Successivamente abbiamo assegnato la tastiera Pins ad Arduino e usando la funzione della tastiera mappata i valori alle chiavi della tastiera. Andando avanti abbiamo dichiarato alcune variabili che abbiamo usato per prendere l'input per la tastiera e memorizzare il risultato per il calcolo BMI.
Nella funzione di configurazione abbiamo visualizzato alcuni dati sul LCD e arrivando alla funzione Loop che abbiamo usato la condizione if per le chiavi con valori interi per riconoscere quale valore viene immesso.
Il programma prende i due input dall'utente uno è peso e l'altro è l'altezza e quando la chiave designata per BMI calcolerà l'IMC e dirà lo stato decidendolo attraverso il valore BMI.
Per ripristinare il programma, abbiamo definito un tasto che quando viene premuto cancellerà il LCD e la funzione di configurazione verrà chiamata per riavviare il codice Arduino. Qui nel codice abbiamo assegnato la chiave "A" della tastiera per eseguire il calcolo BMI e la chiave "C" della tastiera viene utilizzata per cancellare il LCD.
Implementazione hardware per la visualizzazione dell'input della tastiera su LCD
Abbiamo pubblicato l'immagine qui sotto dell'implementazione hardware per la visualizzazione dell'ingresso della tastiera sul LCD.
Il codice Arduino chiederà all'utente di peso e altezza e utilizzando la tastiera che l'utente inserirà i valori per il peso e l'altezza come nell'immagine pubblicata di seguito.
Accanto a calcolare l'IMC, premere il tasto "A" della tastiera e l'IMC verrà visualizzato sul LCD come nella figura seguente.
Sulla base del valore BMI, il codice Arduino fornirà lo stato dell'IMC e può essere visto nella figura di seguito.
Conclusione
Quando dobbiamo dare manualmente gli input al programma Arduino, dobbiamo interfacciarsi una tastiera con Arduino. Le tastiere sono versioni più piccole di tastiere che possono svolgere alcune funzioni di base come dare input a qualsiasi dispositivo. Questi input possono essere caratteri o un numero intero e le chiavi della tastiera sono facilmente configurabili. In questo articolo abbiamo visualizzato un input della tastiera sul LCD compilando un codice di calcolatore BMI in cui vi sono due input richiesti dal codice Arduino: peso e altezza.