Aquí veurem com podem controlar una pantalla LCD de 20 caràcters i 4 files (20×4) només amb 4 cables, on dos són d’alimentació utilitzant el protocol de comunicació i2c i un Arduino UNO.

El protocol i2C bàsicament és un protocol en que amb només dos cables, podem controlar una pila de dispositius penjats des d’aquí només saben la seva adreça per controlar un dispositiu o bé un altre.

És per això que és possible que amb el codi de l’exemple no us funcioni a la primera, ja que s’ha posat d’adreça de control la “0x27”, com podria ser la “0x20” o bé una altra.

Per “descobrir” quina adreça té el vostre dispositiu i2C podeu executar amb un Arduino un escàner (desenvolupat per Nick Gammon) per saber l’adreça.

El programa de l’escàner de dispositius i2C seria el següent:

Programa escaner i2C

//Written by Nick Gammon
// Date: 20th April 2011

#include <Wire.h>

void setup() {
Serial.begin (115200);

// Leonardo: wait for serial port to connect
while (!Serial)
{
}

Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;

Wire.begin();
for (byte i = 1; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup

void loop() {}

A banda de la pantalla LCD, necessitem el controlador i2C per pantalles LCD compatibles amb HD4700 que és el xip més extés de control de pantalles LCD.

lcd 16x2 i controlador i2c

El potenciòmetre de color blau ens permet ajustar el contrast dels caràcters LCD i el “jumper” activar o desactivar la retroil·luminació

Per fer-ho, necessitem una llibreria que no està instal·lada en el programa Arduino IDE de F Malpartida (us el podeu descarregar des d’aquí) que ens permet programar la LCD de forma molt senzilla.

Material necessari.

  • Pantalla LCD amb controlador i2C soldat
  • Quatre cables de connexió
  • Arduino UNO

Esquema de muntatge:

esquema_lcd_i2c

Imatge extreta de http://myitalia.me/news/i2c-lcd-16×2.html

En l’esquema veiem que els canals SCL i SDA van connectats als ports analògics 4 i 5 de l’Arduino. L’esquema està fet amb LCD de 16×2 però és el mateix que per una pantalla de 20×4.

 

Programa:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // Posem l'adreça 0x27 per controlar la pantalla de 20x4
void setup()
{
lcd.init(); // inicialitzem la LCD
lcd.backlight(); //Activem la llum de fons

}
void loop()
{

lcd.print("Hola mon"); //escriurem això en la primera fila
lcd.setCursor(0,1); //activem la segona fila
lcd.print("Aquí segona fila"); //escriurem un missatge a la segona fila
lcd.setCursor(0,2); //activem la tercera fila
lcd.print("fila 3");
lcd.setCursor(0,3);
lcd.print("fila 4");
}

Com podem veure, el programa és molt senzill, juntament amb les seves instruccions, gràcies a la llibreria “LiquidCrystal_I2C.h” de Malpartida que hem inclòs a l’inici del programa

Comparteix això: