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); }