Pantalla LCD 20×4 amb Arduino i i2C
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 &lt; 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.
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:
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
Deixa un comentari