In un altro articolo ho già trattato del Display LCD con Arduino ma, in questa occasione, viene rivisitato con una soluzione più semplice e adatta all’uso con altri componenti.
Lo scopo infatti è quello di pilotare il display in questione con meno pin possibile, 4 appunto.

Rispetto alla soluzione proposta dal tutorial Kuman ho desiderato aggiungere 2 personalizzazioni:
- Un resistore variabile (da 10K Ohm) per variare il contrasto del display.
- Un pulsante per attivare – se premuto – la retroilluminazione del display.
Inoltre non ho utilizzato il codice proposto da Kuman (non mi funzionava) e ho preso quello fornito online dal sito ufficiale di Arduino e l’ho tradotto in italiano, spero vi sia d’aiuto.
/*
* Libreria LiquidCrystal - Hello World
*
* (traduzione in italiano)
*
* Dimostrazione di utilizzo di un display LCD 16x2 con la libreria
* LiquidCrystal.
*
* La libreria LiquidCrystal funziona con tutti i display LCD compatibili con il
* driver Hitachi HD44780.
*
* Ne esistono molti modelli in commercio ed è possibile utilizzarli tramite
* l'interfaccia a 16 pin.
*
* -----------------------------------------------------------------------------
* Quello fornito dal Kit Kuman è uno di questi.
* È opportuno saldarci sopra un "pettine di pin" da innestare poi sulla
* breadboard, al fine di evitare falsi contatti e relative tribolazioni.
* -----------------------------------------------------------------------------
*
* Questo sketch stampa la scritta "Hello World!" sul display (nella prima riga)
* e il numero di secondi trascorsi (nella seconda).
*
* Il circuito:
* * PIN VSS LCD ( 1) -> Arduino +5v
* * PIN VDD LCD ( 2) -> Arduino GND
* * PIN V0 LCD ( 3) -> Arduino GND (dopo resistenza da 10K variabile)
* * PIN RS LCD ( 4) -> Arduino digitale 12
* * PIN RW LCD ( 5) -> Arduino GND
* * PIN E LCD ( 6) -> Arduino digitale 11
* * PIN D4 LCD (11) -> Arduino digitale 5
* * PIN D5 LCD (12) -> Arduino digitale 4
* * PIN D6 LCD (13) -> Arduino digitale 3
* * PIN D7 LCD (14) -> Arduino digitale 2
* * PIN A LCD (15) -> Arduino +3.3v (dopo interruttore [1])
* * PIN K LCD (16) -> Arduino GND
*
* [1] Non è indispensabile e serve solo per attivare (tenendo premuto il
* pulsante) la retroilluminazione.
*
* tradotto 27 gennaio 2019
* da BuDuS
*
********************************************************************************
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
modified 7 Nov 2016
by Arturo Guadalupi
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystalHelloWorld
*/
// Include la libreria:
#include <LiquidCrystal.h>
/*
* Inizializza la libreria associando ad ogni pin di arduino il corrispondente
* dell'LCD secondo il circuito di cui sopra.
*/
const int rs = 12,
en = 11,
d4 = 5,
d5 = 4,
d6 = 3,
d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// Configura l'LCD in base rispettivamente al numero di colonne e righe:
lcd.begin(16, 2);
// Stampa il messaggio desiderato sull'LCD.
lcd.print("hello, world!");
}
void loop() {
// Posiziona il cursore alla colonna 0 della linea 1
// (notare: linea 1 identifica la seconda riga perché si inizia a
// contare da 0):
lcd.setCursor(0, 1);
// Stampa il numero di secondi passati dal reset:
lcd.print(millis() / 1000);
}


Per concludere allego la documentazione che ho caricato sul sito e che può risultare utile: