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:

 

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.