Premessa:
Con questa guida riuscirete a collegare ogni genere di schermo LCD 16×2. Inoltre vedremo nello specifico un display con la retroilluminazione RGB. A livello Hardware, rispetto ai soliti display, quello RGB viene caratterizzato con l’aggiunta di altri 3 pin per la gestione delle varie tonalità da ricavare per l’effetto retro illuminato.
LISTA DEI MATERIALI:
Come Collegare il Display 16×2 su Arduino:

Per la retroilluminazione collegare il led rosso (pin 16 display) al pin digitale 3 di Arduino, il led verde (pin 17 display) al pin digitale 5 di Arduino, e il led blu (pin 18 display) al pin digitale 6 di Arduino. Di norma non necessitano resistenze perchè sono gia integrate a bordo del LCD RGB.

Software Diplay RGB: con questo software scriveremo due righe sullo schermo e aggiungeremo un effetto “onda” retroilluminato con varie tonalità di colori che vedrete sfumarsi nel ciclo loop di arduino.
Librerie:
- LiquidCrystal LGPL: arduino.cc/en/Reference/LiquidCrystal
- Wire LGPL: arduino.cc/en/Reference/Wire
// include the library code:
#include <LiquidCrystal.h>
#include <Wire.h>
#define REDLITE 3
#define GREENLITE 5
#define BLUELITE 6
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
// you can change the overall brightness by range 0 -> 255
int brightness = 255;
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("RGB 16x2 Display ");
lcd.setCursor(0,1);
lcd.print(" Multicolor LCD ");
lcd.setCursor(0,2);
pinMode(REDLITE, OUTPUT);
pinMode(GREENLITE, OUTPUT);
pinMode(BLUELITE, OUTPUT);
brightness = 100;
}
void loop() {
for (int i = 0; i < 255; i++) {
setBacklight(i, 0, 255-i);
delay(5);
}
for (int i = 0; i < 255; i++) {
setBacklight(255-i, i, 0);
delay(5);
}
for (int i = 0; i < 255; i++) {
setBacklight(0, 255-i, i);
delay(5);
}
}
void setBacklight(uint8_t r, uint8_t g, uint8_t b) {
// normalize the red LED - its brighter than the rest!
r = map(r, 0, 255, 0, 100);
g = map(g, 0, 255, 0, 150);
r = map(r, 0, 255, 0, brightness);
g = map(g, 0, 255, 0, brightness);
b = map(b, 0, 255, 0, brightness);
// common anode so invert!
r = map(r, 0, 255, 255, 0);
g = map(g, 0, 255, 255, 0);
b = map(b, 0, 255, 255, 0);
Serial.print("R = "); Serial.print(r, DEC);
Serial.print(" G = "); Serial.print(g, DEC);
Serial.print(" B = "); Serial.println(b, DEC);
analogWrite(REDLITE, r);
analogWrite(GREENLITE, g);
analogWrite(BLUELITE, b);
}




