Pentru a afisa mai multe informatii in acelasi timp putem folosi mai multe afisaje LCD. In acest exemplu vom folosi afisaje LCD care au si un adaptor la interfata I2C pentru a reduce numarul de conexiuni cu Arduino.
Pentru a putea folosi aceste afisaje impreuna va trebui sa le alocam adrese diferite. Display-ul folosit este cel din acest articol. In articolul original observam ca pe modulul adaptor lcd-i2c avem 3 randuri de pini: A0, A1, si A2. Facand punti intre acesti pini practic vom schimba adresa i2c a modulului.
In cazul in care nu facem nici o punte atunci adresa prestabilita a modulului va fi 0x3F. In cazul nostru vom utiliza pentru ecranul secundar un display LCD 2004 dar la care vom face o punte pe adresa A0. Acest lucru va face ca adresa acestui adaptor sa devina 0x3E.
Pentru al treilea display folosit in acest exemplu vom face o punte pe adresa A1 ceea ce are ca efect schimbarea vechii adrese in 0x3D. Acest ultim display va fi de tipul 1602.
Cele 3 displayuri se vor conecta impreuna pe interfata I2C.
Sketchul folosit este urmatourl:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd1(0x3F, 20, 4);
LiquidCrystal_I2C lcd2(0x3E, 20, 4);
LiquidCrystal_I2C lcd3(0x3D, 16, 2);
void setup() {
lcd1.begin();
lcd2.begin();
lcd3.begin();
lcd1.backlight();
lcd1.setCursor(0, 0);
lcd1.print("initializare");
lcd1.setCursor(2, 1);
lcd1.print("display lcd 1");
lcd1.setCursor(0, 3);
lcd1.print("electronicstore.ro");
lcd2.backlight();
lcd2.setCursor(0, 0);
lcd2.print("initializare");
lcd2.setCursor(2, 1);
lcd2.print("display lcd 2");
lcd2.setCursor(0, 3);
lcd2.print("electronicstore.ro");
lcd3.backlight();
lcd3.setCursor(0, 0);
lcd3.print("initializare");
lcd3.setCursor(2, 1);
lcd3.print("display lcd 3");
delay(3000);
}
void loop() {
lcd1.clear();
lcd1.setCursor(0, 0);
lcd1.print("Senz. 1 - LCD 1");
lcd1.setCursor(0, 1);
lcd1.print("Senz. 2 - LCD 1");
lcd1.setCursor(0, 2);
lcd1.print("Senz. 3 - LCD 1");
lcd1.setCursor(0, 3);
lcd1.print("Senz. 4 - LCD 1");
lcd2.clear();
lcd2.setCursor(0, 0);
lcd2.print("Senz. 1 - LCD 2");
lcd2.setCursor(0, 1);
lcd2.print("Senz. 2 - LCD 2");
lcd2.setCursor(0, 2);
lcd2.print("Senz. 3 - LCD 2");
lcd2.setCursor(0, 3);
lcd2.print("Senz. 4 - LCD 2");
lcd3.clear();
lcd3.setCursor(0, 0);
lcd3.print("Senz. 1 - LCD 3");
lcd3.setCursor(0, 1);
lcd3.print("Senz. 2 - LCD 3");
delay(1000);
}
Poze cu montajul in functiune mai jos:
