Probando una pantalla LCD con Arduino

Después de una cuentas semanas trasteando con mi Arduino Uno Rev. 3, aquí os traigo otra entrada en el blog para explicaros el funcionamiento de una pantalla LCD de 16×2 (16 caracteres y 2 columnas), la cual me venía cuando compré el Arduino.

Lo bueno de este LCD es que viene con un módulo soldado para la comunican en serie por I2C, así de esta forma nos ahorramos una buena cantidad considerable de pines.

Este display LCD está basado en el controlador HD44780 donde son necesarios 8 pines del Arduino para conectarlo y hacerlo funcionar, pero como ya he comentado, en este caso trae un módulo soldado para hacer la conexión por I2C, así de esta forma tan solo necesitaremos 2 pines más la alimentación a 5v.

[box]

I²C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Inter-Circuitos Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100 kbit/s en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microcontroladores y sus periféricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos integrados entre si que normalmente residen en un mismo circuito impreso.

La principal característica de I²C es que utiliza dos líneas para transmitir la información: una para los datos y por otra la señal de reloj. También es necesaria una tercera línea, pero esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea no suele ser necesaria.

Las líneas se llaman:

SDA: datos
SCL: reloj
GND: tierra

[/box]

Módulo I2C

Módulo I2C

Para hacer la conexión con el módulo I2C, la librería que viene por defecto en el IDE de Arduino no funciona por lo que necesitamos otra llamada LiquidCrystal_I2C, la cual la podemos descargar desde aquí abajo. Esta librería reemplaza la que ya viene con el IDE y según su creador dice que es mucho más rápida que la ofrecida por el IDE.

[button type=”big” icon=”upcoming-work” url=”https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip” data-target=”blank”]Descargar librería (550KB)[/button]

[box color=”green” icon=”sign-in”]Una vez descargada la librería tendremos que copiarla y pegarla en la carpeta libraries, que se encuentra donde tengamos instalado el software de Arduino.[/box]

Conexionado de hardware

La conexión del LCD se queda de la sigueinte forma:

  • El pin GND del display al pin GND del Arduino.
  • El pin VCC del display al pin 5V del Arduino.
  • El pin SDA del display al pin analógico 4 del Arduino.
  • El pin SDL del display al pin analógico 5 del Arduino.

La dirección del displays es 0×27. Esta dirección se configura usando los pines 1, 2 y 3 del controlador I2C PCF8574.

Tabla de direcciones I2C para el controlador PCF8574.

Tabla de direcciones I2C para el controlador PCF8574.

El código

Y aquí esta el resultado:

LCD Arduino

LCD Arduino

Código para saber la dirección I2C

Como siempre pongo el código del sketch usado en mi cuenta de Github para que lo podáis descargar de forma fácil. Además se hacen sugerencias y modificaciones del código.

[button type=”big” icon=”upcoming-work” url=”https://github.com/dorcu/LCD-para-Arduino” data-target=”blank”]Descargar código desde GitHub[/button]

Fuentes: [icon name=”bookmark”] Wire [icon name=”bookmark”] I2C Scanner

16 respuestas en “Probando una pantalla LCD con Arduino

  1. fabio lopez

    he echo cualquier cantidad de programaciones , las dos versiones de las libreria del lcd i2c y no sale nada por el display ,cuando utilizo el ejemplo customchars si se carga y da display pero cuando utilizo otro ejemplo no sale nada o me da error le agradesco ayuda

    Reply
  2. pablo

    hola estoy partiendo con el tema del lcd i2c pero cuando cargue este sketch me dice error con la variable “positive”
    gracias!

    Reply
  3. andres

    no me funciono para nada. conecto el modulo y enciende la lcd y queda prendida grabo el código a arduino y no hace nada “ni parpadea” tengo instalada la librería v1.2.1 y nada. (de antemano gracias por la ayuda )

    Reply
  4. carmen

    Saludos.
    Yo también estoy empezando con esto. He probado varias pantallas y varias placas y sólo me salen líneas de cuadrados (ya probé lo del potenciómetro de contraste). Antes de pensar que es un fallo masivo de hardware y tras haber verificado las conexiones, me inclino a pensar que falla la librería.
    La descargo y la instalo con la opción de añadir librería, pero sigue sin ir… ¿desinstalo las demás?¿cómo? Me empieza a tener muy desesperada esto… me compré una pantalla de 20×4 y el error es el mismo.
    Puse en los códigos de prueba que sí me funcionaron con una bqzum y añadí el parpadeo del led de prueba para ver si a parte de descargar en la placa ejecutaba algo, y el led funciona estupendamente… así que no se me ocurre nada más…
    Librerías probadas con sus ejemplos: newliquidcrystal y liquidcristal_i2c

    Reply
  5. Salvador Garcia

    Muchas gracias despues de multiples pruebas, gracias a tu post he conseguido que me funcione el display.

    Gracias

    Reply
  6. Carlos Orlando LevelsGara Torres

    Ufffff muchisimas graciasssssss, Tenia todo un dia entero tratando de visualizar algo en la LCD pero siempre colocaba la misma direccion sin saber que este conversor que adquiri tiene una direccion diferente, muchisima gracias por el codigo

    Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *