martes, 13 de septiembre de 2016

Conectando dos LCD 1602 independientes mediante comunicación I²C


Después de estar un tiempo sin dedicarme al BLOG, a partir de hoy retomo la publicación de nuevos POST de manera más o menos continuada como hasta ahora he estado haciendo. Hoy simplemente os voy a mostrar como conectar dos displays LCD 1602 mediante comunicación I²C, sin que su comunicación con nuestro Arduino se cruce, es decir, cada LCD 1602 trabajará de manera independiente. Aunque en este POST nosotros vamos a trabajar con dos LCD 1602, podríamos conectar teóricamente hasta “127” LCD 1602 a nuestro Arduino mediante comunicación I²C, aunque de momento y gracias al módulo LCM 1602 I2C (en sus dos versiones V1 y V2) es posible conectar simultáneamente un máximo de “16”, teniendo en cuenta que sería necesario alimentarlos a +5V externamente y no desde Arduino, puesto que cada versión del módulo LCM 1602 I2C nos ofrece la configuración de ocho direcciones diferentes mediante sus pines A2, A1 y A0 (soldándolos o no a GND), como se muestra en la siguiente imagen.

Tabla de direcciones de los módulos LCM 1602 I²C

Para una mayor información acerca de la conexión y configuración de la dirección I²C en cada uno de los LCD 1602 es importante que analicéis el siguiente POST , teniendo en cuenta que lo más importante para que nos funcionen correctamente ambos LCD 1602 es que cada uno de los módulos LCM 1602 I2C tenga asignada una dirección I²C diferente, para que a través de nuestro Arduino podamos acceder a ella de manera independiente mediante programación.

El programa que tenemos que cargar en nuestro Arduino simplemente realizará un parpadeo alterno inicial de los LCD 1602, para que posteriormente muestren unas líneas de texto diferentes para cada LCD 1602 y finalmente se realice un barrido vertical en bucle continuo de un conjunto de asteriscos a través de ellos, sin que se mezcle la comunicación en ningún momento (para una mayor información debemos de analizar los comentarios del programa).

Este tipo de comunicación en los LCD 1602 es muy interesante cuando conectamos varios sensores a nuestro Arduino y queremos visualizar los resultados de manera independiente, es decir, si por ejemplo tenemos conectados un sensor de temperatura y otro de presión a nuestro Arduino, podremos visualizar un sólo parámetro de manera individual en cada uno de los LCD 1602, para poder acceder a ellos desde diferentes ubicaciones o salas (un LCD 1602 mostraría la temperatura y el otro la presión).



Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Dos módulos LCM 1602 I2C (Versiones V1 y V2).

·         Dos displays 16x2 LCD 1602.

·         Protoboard.

·         Cables de conexión.



 Código del programa:




Video:

9 comentarios:

  1. Buenos dias,
    Estamos intentando programar la conexion y el programa de dos LCD i2c, y no logramos conseguirlo. Estariamos muy agradecidos que nos pudieses mandar una imagen de la conexion junto al ejemplo de la programacion, para que los LCD i2c funcionen independientemente.

    ResponderEliminar
    Respuestas
    1. Antes de conectar los dos LCD adquiere las direcciones I2C de cada uno y prueba que funcionan de manera individual. https://miarduinounotieneunblog.blogspot.com.es/2015/12/display-lcd-16x2-con-comunicacion-i2c.html

      Eliminar
  2. No sabemos diferenciar las diferentes direcciones, los dos LCD que vamos a utilizar nos van con el 0x27. Queremos que nos escriba diferentes textos en cada LCD.

    ResponderEliminar
    Respuestas
    1. Te vuelvo a repetir que en el enlace que te he enviado viene como cambiar direcciones I2C en los LCD. Se trata de llevar a GND o VCC los pines A0, A1 y A2 para seleccionar la dirección. Esto lo puedes hacer soldando los pines. Tus LCD deben de tener direcciones distintas para poder trabajar adecuadamente.

      Eliminar
    2. Te vuelvo a repetir que no nos funciona, hemos encontrado a una persona mejor que nos ha ayudado mas y lo hemos logrado. Gracias por tu colaboración y espero que aprendas mas con tu oficio. Que te vaya bien.

      Eliminar
    3. Mi misión no es la de ayudarte majete. Simplemente dejo el proyecto ahí por si lo quieres tomar de referencia. Si no has conseguido que te funcione te recomiendo que estudies e investigues mas porque es muy bonito que te den todo hecho. La proxima vez que te dirijas a mi te pido un poco mas de respeto simpatico.

      Eliminar
  3. Muchas gracias Mariano, tu proyecto me ha servido de referencia.

    ResponderEliminar
  4. Holas, para diferenciar cada dispositivo conectado al arduino, en este caso dos LCD, es con un buscador que de la dirección en hexadecimal, se conectan los 2 LCD y mostraran las direcciones de cada uno es muy simple, en san google aparecen muchos codigos de este escaner de dispositivos, nos vemos

    ResponderEliminar
  5. Si se puede, configurando dos pantallas, uno con el adaptador Serial i2c y el otro lcd con conexion normal.

    ResponderEliminar