Introduzione
Benvenuto in un altro tutorial di Velxio! Oggi costruiremo un classico progetto Hello World utilizzando un display LCD 20x4 e un Arduino Uno. Questo è un progetto perfetto per i principianti che vogliono imparare a interfacciare display LCD caratteri con microcontrollori. Utilizzeremo la popolare libreria LiquidCrystal, che rende il controllo del display un gioco da ragazzi.
Alla fine di questo post, sarai in grado di cablare un LCD 20x4, scrivere codice per visualizzare testo su più righe e persino mostrare dati dinamici come il tempo di attività. Iniziamo!
Schema del Circuito

Il nostro circuito è composto da due componenti principali: un Arduino Uno e un LCD 20x4 (modello wokwi-lcd2004). L’LCD ha 16 pin, ma ne servono solo 6 per dati e controllo. Ecco il cablaggio:
- RS (Register Select) – collegato al pin 12 di Arduino (filo verde)
- E (Enable) – collegato al pin 11 di Arduino (filo verde)
- D4 – collegato al pin 5 di Arduino (filo blu)
- D5 – collegato al pin 4 di Arduino (filo blu)
- D6 – collegato al pin 3 di Arduino (filo blu)
- D7 – collegato al pin 2 di Arduino (filo blu)
Stiamo usando la modalità a 4 bit, che richiede solo quattro linee dati (D4–D7) invece di otto. Questo permette di risparmiare preziosi pin I/O. L’LCD necessita anche di alimentazione (5V) e massa, ma in Velxio queste sono collegate automaticamente quando si posizionano i componenti.
Per costruire questo circuito in Velxio:
- Apri l’esempio LCD Hello World o avvia un nuovo progetto.
- Usa il selettore componenti per aggiungere un Arduino Uno e un LCD 20x4.

- Clicca sui pin e trascina i fili per abbinare le connessioni sopra. Puoi cambiare i colori dei fili cliccando sul campione di colore.
- Il tuo canvas dovrebbe apparire come lo schema elettrico sopra.
Analisi del Codice

Ora diamo un’occhiata al codice. Apri l’editor di codice in Velxio (vedrai l’editor Monaco con evidenziazione della sintassi). Ecco lo sketch completo:
// LiquidCrystal Library - Hello World
// Demonstrates the use a 20x4 LCD display
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("Hello, Arduino!");
lcd.setCursor(0, 1);
lcd.print("Velxio Emulator");
lcd.setCursor(0, 2);
lcd.print("LCD 2004 Test");
}
void loop() {
// set the cursor to column 0, line 3
lcd.setCursor(0, 3);
// print the number of seconds since reset:
lcd.print("Uptime: ");
lcd.print(millis() / 1000);
}
Come funziona
- Includi la libreria:
#include <LiquidCrystal.h>ci dà accesso a tutte le funzioni dell’LCD. - Definisci i pin: Creiamo costanti per i numeri dei pin:
rs = 12,en = 11,d4 = 5,d5 = 4,d6 = 3,d7 = 2. Questi corrispondono al nostro cablaggio. - Crea l’oggetto LCD:
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);dice alla libreria quali pin sono collegati. - In
setup():lcd.begin(20, 4);inizializza il display con 20 colonne e 4 righe.lcd.print()scrive testo nella posizione corrente del cursore.lcd.setCursor(col, riga)sposta il cursore in una posizione specifica (indicizzazione a partire da 0).
- In
loop():- Spostiamo il cursore alla riga 3, colonna 0.
- Stampiamo “Uptime: ” seguito da
millis() / 1000(secondi dal reset).
Per eseguire il codice, clicca sul pulsante Compila nella barra degli strumenti, poi su Esegui.

Concetti Chiave
- Modalità a 4 bit vs 8 bit: Usare solo 4 linee dati (D4–D7) risparmia pin. La libreria LiquidCrystal gestisce il protocollo.
- Posizionamento del cursore:
setCursor(col, riga)– ricorda che righe e colonne iniziano da 0. millis(): Restituisce i millisecondi dall’avvio del programma. Dividendo per 1000 si ottengono i secondi.- Gestione librerie: Velxio include la libreria LiquidCrystal di default. Puoi aggiungere altre librerie tramite il Gestore Librerie.

Errori Comuni e Suggerimenti per il Debug
- Errori di cablaggio: Ricontrolla che ogni filo colleghi i pin corretti. Scambiare D4 e D5 causerà caratteri illeggibili.
- Dimensioni errate in
begin(): Se usilcd.begin(16, 2)con un display 20x4, il testo potrebbe apparire troncato o disallineato. - Libreria mancante: Se ottieni un errore di compilazione riguardante
LiquidCrystal.h, assicurati che la libreria sia installata (dovrebbe esserlo di default). - Cursore non visibile: Il cursore è invisibile di default. Usa
lcd.cursor()per mostrare un cursore a trattino basso. - Testo che non si aggiorna: Nel loop, potresti dover cancellare la riga prima di stampare nuovi dati. Usa
lcd.setCursor(0, 3); lcd.print(" ");per cancellare la riga.
Estensioni Suggerite
Una volta che il Hello World di base funziona, prova questi miglioramenti:
- Testo scorrevole: Usa
lcd.scrollDisplayLeft()olcd.scrollDisplayRight()per creare messaggi scorrevoli. - Visualizza dati da sensori: Leggi un sensore analogico (es. potenziometro) e mostra il suo valore sull’LCD.
- Caratteri personalizzati: Crea i tuoi simboli usando
lcd.createChar(). - Input con pulsante: Aggiungi un pulsante per cambiare il messaggio visualizzato.
- Schermate multiple: Usa una macchina a stati per ciclare tra diverse pagine informative.
Provalo Tu Stesso!
Pronto per costruire il tuo progetto LCD? Apri l’esempio LCD Hello World in Velxio e inizia a sperimentare. Puoi modificare il codice, cambiare il cablaggio o aggiungere nuovi componenti – tutto nel tuo browser, senza bisogno di hardware.
Buon making!