Skip to main content

3.5 LCD

Las pantallas Liquid Cristal Display es la forma más sencilla de poner una interfáz de texto a nuestro Arduino.

via GIPHY

La pantalla LCD

La pantalla LCD tiene un precio muy bajo, el más común es el Hitachi HD44780 monocromo con configuración 16 carácteres y 2 líneas (16x2) pero también se venden 20×02, 20×04 y 40×02.

Su conexión DIRECTA con el Arduino no es recomendable por la cantidad de cables que se necesitan y el código elaborado, pero tiene la ventaja de tener total libertad en creación de carácteres y control. Si quieres ver esta opción puedes ver la página de Luis LLamas

I2C

Como hemos dicho en La pantalla LCD no es recomendable su conexión directa con Arduino, para ello está este controlador que permite su conexión utilizando sólo dos cables. Los dos componentes pueden salir por menos de 5€.

Su conexión con el LCD tiene que ser tal y com indica la imagen, y soldándo los terminales con cuidado: CC-BY-SA Luis Llamas

Conexión con el Arduino

La conexión tiene serie tiene que ser en los pines A4 y A5 exclusivamente en el Arduino Uno pues son los dedicados para el protocolo serie I2C que veremos más adelante. Para otras placas ver la página de Luis Llamas.

El esquema es muy sencillo:

CC-BY-SA Luis Llamas

Contraste

Tiene un potenciómetro azul para regular el contraste, bastante sensible por cierto (una poca variación hace que nuestro texto no se vea correctamente):

Escaneo

El bus I2C está vinculado en el Arduino Uno a los Pines A4 y A5 como hemos visto en la anterior página, el protocolo serie I2C necesita la librería Wire.h que está de forma nativa en el programa Arduino IDE, pero la dirección de dispositivo no lo sabemos PARA ELLO HAY QUE EJECUTAR ESTE CÓDIGO:

#include 


void setup()
{
  Wire.begin();

  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 1; address 

Extraido de Arduino.cc o también de Luis Llamas

Nos tiene que salir lo siguiente:

En mi caso como ves la dirección me ha salido 0x3F pero puede ser cualquier otro, por ejemplo otro valor muy típico es 0x27