Come creare un menu su LCD usando Arduino Uno

Come creare un menu su LCD usando Arduino Uno
Per utilizzare i microcontrollori per eseguire compiti diversi nel modo più efficace per utilizzare le schede Arduino in quanto rendono più semplice l'interfaccia con il microcontrollore. Arduino fornisce ai suoi utenti una grande varietà di schede Arduino che hanno diversi tipi di microcontrollori. Inoltre, i microcontrollori possono essere interfacciati con una serie di periferiche come LCD e sensori con l'aiuto delle schede Arduino. Interfacciando diversi dispositivi con Arduino possiamo fare una serie di progetti. Ad esempio, come fare una ventola a temperatura controllata, misurare la temperatura, fare un allarme antincendio e molti altri. Abbiamo creato un piccolo progetto di creazione di un menu usando Arduino IDE e visualizzando quel menu su LCD. Inoltre, i menu possono essere utilizzati durante la progettazione di un sistema automatizzato domestico o di qualsiasi sistema di monitoraggio.

Come creare un menu usando Arduino su LCD

La creazione di un menu usando Arduino può essere utile per eseguire più attività quando necessario. Praticamente possiamo vedere l'uso di menu nei nostri telefoni cellulari o qualsiasi dispositivo intelligente in grado di svolgere alcune funzioni specifiche. In breve, il menu è un elenco di opzioni o azioni che si possono fare con il rispettivo dispositivo, quindi abbiamo utilizzato il seguente hardware per la creazione di un menu utilizzando Arduino su LCD:

  • Arduino Uno
  • Collegamento dei fili
  • Un potenziometro
  • Quattro pulsanti
  • Uno LED
  • Un display in cristallo liquido (16 × 2)
  • Un cicalino
  • Un sensore di temperatura (LM35)

Gli schemi sono riportati di seguito:

Assemblaggio hardware per la creazione di menu utilizzando Arduino

Abbiamo assemblato i componenti in modo tale che prima abbiamo messo tutti i componenti su una breadboard e quindi usando i fili di collegamento, ogni componente è interfacciato con Arduino. Abbiamo pubblicato un'immagine qui sotto per il gruppo hardware attraverso il quale le connessioni dei componenti possono essere comprese facilmente.

I fili verdi collegano i pin di dati dell'LCD con Arduino mentre i fili grigi collegano i pulsanti con Arduino. Il sensore di temperatura è direttamente collegato all'Arduino senza cavi di collegamento perché i fili di collegamento a volte distorcono l'uscita del sensore. I componenti sono alimentati usando il pin da 5 volt di Arduino.

La sequenza dei pulsanti è menzionata nell'immagine sopra.

Codice Arduino per la creazione di un menu

Abbiamo creato un menu con tre opzioni uno è quello di attivare e disattivare il LED, il secondo sta misurando la temperatura e il terzo suona un allarme:

#include // libreria per LCD
LiquidCrystal LCD (7,6, 5, 4, 3, 2); // Pin Arduino per LCD
int vcc = a0; // fornitura di pin A0 di LM35
int vout = a1; // pin A1 per l'uscita di LM35
int gnd = a2; // PIN A2 per l'uscita di LM35
Float temp; // variabile per conservare il valore di temperatura
valore galleggiante; // memorizzazione del valore del sensore di temperatura
const byte upButtonPin = 12; // Pin Arduino per UP
const byte downButtonPin = 11; // Pin Arduino per il pulsante giù
const byte a destra rompica
Const Byte LeftButtonPin = 8; // Pin Arduino per il pulsante sinistro
const byte buzzerpin = 9; // Pin Arduino per il cicalino
const byte ledpin = 13; // pin Arduino per LED
String MenuIUTEEMS [] = // Creazione della stringa delle opzioni nel menu
"Interruttore LED",
"Temperatura",
"Interruttore buzzer"
;
vuoto menufunzioni (menu int, byte a destra, byte a sinistra) / * Creazione delle funzioni delle opzioni fornite nel menu * /

if (menu == 1) // per la prima opzione

if (a destra == 1) // se viene premuto il pulsante destro

LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.stampa ("off"); // stampare l'opzione off
LCD.SetCursor (10, 1); // Impostazione del luogo per i dati su LCD
LCD.Stampa ("On <<");// move the cursor on the ON option
DigitalWrite (LedPin, High); // Accendi il LED

if (a sinistra == 1) // se viene premuto il pulsante sinistro

LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.stampare <<");// printing the off option
LCD.SetCursor (10, 1); // Impostazione del luogo per i dati su LCD
LCD.print ("on"); // stampare l'opzione on
DigitalWrite (LedPin, Low); // Spegnendo il LED


if (menu == 2) // Se è selezionata la seconda opzione nel menu

value = analogread (vout); // Leggendo l'output del sensore
temp = valore*0.48; // Convertendo i valori analogici in valori di temperatura
LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.print ("temperatura:"); // Visualizzazione dei dati
LCD.SetCursor (12, 1); // Impostazione del luogo per i dati su LCD
LCD.stampa (temp); // visualizzando il valore della temperatura

if (menu == 3) // Se è selezionata la terza opzione

if (a destra == 1) // se viene premuto il pulsante destro

LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.stampare "); // Stampa l'opzione Off
LCD.SetCursor (10, 1); // Impostazione del luogo per i dati su LCD
LCD.Stampa ("On <<");// move the cursor on the ON option
tono (Buzzerpin, 125); // Accendi il cicalino

if (a sinistra == 1) // se viene premuto il pulsante sinistro

LCD.setCursor (0, 1); // Impostazione del luogo per i dati su LCD
LCD.stampare <<");// move the cursor on the off option
LCD.SetCursor (10, 1); // Impostazione del luogo per i dati su LCD
LCD.print ("on"); // Stampa l'opzione On
notone (buzzerpin); // spegnere il cicalino



// Creazione del modello del menu
modello /* variabile per il nome dell'opzione e per dimensioni del menu* /
size_t menuIuiTemSsize (t (&) [numeroofsize]) return NumberOfSize; /* Nome opzione menu e il numero di opzione*/
int NumberOfMenuiteEms = menuuitEmSsize (menuuitEms) - 1;
int currentMenuiteem = 0; // Variabile per l'archiviazione dell'opzione corrente
Int PrecedentiMenuiteem = 1; // Variabile per la memorizzazione dell'opzione precedente
byte button_flag = 0;
precedente non firmato il precedente Millis = millis ();
// funzione di configurazione
void setup ()

pinMode (ledpin, output); // Definizione della modalità PIN per LED
pinMode (VCC, output); // Definizione della modalità pin per il perno di alimentazione per il sensore
pinMode (vout, input); // Definizione della modalità pin per il pin di uscita del sensore
pinMode (GND, output); // Definizione della modalità pin per il perno di terra del sensore
// Definizione degli stati per la fornitura e i perni di terra per i sensori
DigitalWrite (VCC, High); // Dare l'Arduino A0 Pin High State
DigitalWrite (GND, basso); // Dare lo stato basso a basso pin Arduino A2
PINMODE (upButtonPin, input_pullup); // Assegnazione del pulsante UP INPUT_PULLUP Modalità
pinMode (downButtonPin, input_pullup);/*Assegnazione del pulsante UP INPUT_PULLUP Modalità*/
PINMODE (destrabuttonPin, input_pullup);/*Assegnazione del pulsante UP INPUT_PULLUP Modalità*/
PinMode (LeftButtonPin, input_pullup); /*Assegnazione del pulsante UP INPUT_PULLUP Modalità*/
LCD.Inizia (16,2); // Inizializzazione delle dimensioni di LCD
LCD.Clear (); // Clearing the LCD
LCD.setCursor (0, 0); // Impostazione per i dati da visualizzare su LCD
LCD.print ("welcome to"); // dati da visualizzare su LCD
LCD.setcursor (3, 1); // Impostazione del posto per i dati da visualizzare su LCD
LCD.print ("menu Arduino"); // dati da visualizzare su LCD
ritardo (6000); // ora per il quale i dati verranno visualizzati su LCD
LCD.Clear (); // Clearing the LCD
LCD.setCursor (0, 0); // Impostazione del posto per i dati da visualizzare su LCD
LCD.Stampa ("Linuxhint.com "); // dati da visualizzare su LCD
ritardo (7000); // ora per il quale i dati verranno visualizzati su LCD
LCD.Clear (); // Clearing the LCD

// usando le condizioni IF per definire la funzionalità di ciascun pulsante
void loop ()

if (DigitalRead (RightButtonPin) == Low && Button_flag == 0)/ *Se il pulsante destro viene premuto */

menufunctions (CurrentMenuiteem + 1, 1, 0); // Sposta un passaggio a destra
Button_flag = 1;
PrecedenteMillis = millis ();

if (DigitalRead (LeftButtonPin) == Low && Button_flag == 0)/*Se il pulsante sinistro viene premuto*/

menufunctions (CurrentMenuiteem + 1, 0, 1);
Button_flag = 1;
PrecedenteMillis = millis ();

if (DigitalRead (upButtonPin) == Low && Button_flag == 0) /*Se viene premuto il pulsante* /

++CurrentMenuiteem;
if (CurrentMenuiteem> NumberOfMenuiteems)

CurrentMenuiteem = numeroofMenuuitEms;

Button_flag = 1;
PrecedenteMillis = millis ();

else if (DigitalRead (downButtonPin) == Low && Button_flag == 0) /*Se il pulsante giù viene premuto* /

CurrentMenuiteem--;
if (currentMenuiteem = 400)

PrecedenteMillis = millis ();
Button_flag = 0;

Per riassumere il funzionamento del codice Arduino indicato sopra, possiamo dire che all'inizio abbiamo assegnato pin a LCD, sensore di temperatura, buzzer e pulsanti Push. Quindi abbiamo creato un menu avendo alcune opzioni come la commutazione del LED, il rilevamento della temperatura e la commutazione del cicalino.

Abbiamo usato le condizioni IF per ogni opzione che abbiamo fornito nel menu e successivamente abbiamo creato un modello per creare il menu e definire alcune variabili per ricordare le opzioni nel menu.

Nella funzione di configurazione a tutti i pin Arduino vengono assegnate le loro modalità e la dimensione del LCD viene inizializzata.

Venendo alla funzione Loop abbiamo definito la funzionalità di ciascun pulsante utilizzato nel programma Arduino. Ci sono quattro pulsanti utilizzati in questo programma: due sono i pulsanti a levetta e gli altri due sono usati come interruttore on/off per i dispositivi collegati.

Implementazione hardware per la creazione di un menu usando Arduino Uno

Le immagini dell'output del programma Arduino sull'hardware sono pubblicate nella sequenza del flusso del codice Arduino. Per navigare nel menu Premere i pulsanti "su" e "giù" per eseguire le funzioni premere i pulsanti "a sinistra" e "destra".

La prima opzione del menu è l'interruttore LED:

Quando il LED è in fuori stato:

Quando viene premuto il pulsante destro, il LED verrà acceso:

La seconda opzione nel menu è la temperatura:

L'opzione successiva è la commutazione del cicalino:

Quando il cicalino è sullo stato quando viene premuto il pulsante destro:

Il cicalino viene spento quando viene premuto il pulsante sinistro:

Conclusione

Per realizzare progetti diversi a livello principiante o avanzato nel modo più fattibile che viene in mente è usare la piattaforma Arduino. Questa piattaforma offre una varietà di opzioni per gli utenti in base ai requisiti del progetto. Allo stesso modo questa piattaforma è una specie di pacchetto completo in quanto fornisce entrambi i tipi di software di assistenza e hardware. Quindi, realizzare progetti che utilizzano Arduino dà la possibilità di apprendere e comprendere diversi concetti sui circuiti. Abbiamo anche realizzato un progetto di creazione di un menu utilizzando una scheda Arduino Uno e visualizzandolo su un LCD 16 × 2.