Calcetines azules

Arduino, Rasperry y algo más

Como usar dos LCD con un arduino (II)

En un post del foro español de Arduino surgió el tema de como conectar las dos LCD y expuse el método que publiqué en esta entrada (Como usar dos LCD con un arduino (I) ) y que consiste en el uso de puertas lógicas,. Entre otras cosas se comentó otro método que permite hacer lo mismo que expuse anteriormente. El post en en cuestión está aquí.

La solución que se propuso es declarar ambas LCD en el programa de la siguiente forma:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);

Dos consideraciones a este método:

  1. Lo primera es fijarse en los pines declarados. Son los mismos en los dos LCD menos el pin ENABLE. Se consigue manejar dos LCD con un solo pin más.
  2. Se podrían declarar más LCD, usando un pin extra para cada uno.

 

¿Y cual de los dos métodos es mejor? La respuesta a esta pregunta es «depende». Analicemos los pros y los contras de cada sistema:

  • Método 1: Explicado mas a fondo en esta entrada, consiste en el uso de un pin de control que, a traves de puertas lógicas, activa el enable de una LCD u otra.
  • Inconvenientes: Su principal desventaja es la necesidad de añadir circuiteria extra, pues hay que usar mas integrados (las puertas). Luego tiene otro inconveniente, y es la programación: hay que ir activando manualmente cada una de las LCD y darle tiempo para que la puerta responda, aunque se puede meter como subrutinas o en una librería.
  • Ventajas: La principal ventaja no es obvia y es que se usan menos pines de Arduino ¿Como? muy fácil. Con este sistema por cada pin de control, además del Enable, vamos a doblar el número de LCD´s que podemos controlar. Esto es así por que podemos hacer que sea significativo el apagar el pin de control. Así para 4 LCD´s solo usaríamos 2 pines, pues sus combinaciones de 0/1 son 4. Pero si añadimos un tercer pin de control podríamos manejar ¡¡8!! LCD´s.  De todas formas esto solo se vería para mas de dos LCD´s.

Por tanto este método solo estaría indicado para usar 3 o mas LCD´s pues sino no compensa el uso de circuiteria extra. Pero coje ventaja para números grandes de más de 4.

  • Método 2: Es el que explico en esta entrada y consiste en declarar las dos LCD´s en el programa y llamar a cada una según lo que queramos escribir. Y también tiene sus cosas buenas y malas:
    • Inconvenientes: Basicamente que hay que usar un pin extra por cada LCD, más del doble que con el método anterior. Y ese es el «único» inconveniente que le encuentro a este método.
    • Ventajas: La circuiteria es mucho mas sencilla: penemos en común todos los pines de los LCD´s menos el Enable y los enables cada uno a su pin. Mas sencillo imposible. Ademas la programación es mucho mas sencilla, pues la librería ya tiene establecidos todos los parametros para que las pantallas funcionen y solo hay que llamar a cada LCD:

lcd.print(”Escrito en LCD 1”);

o

lcd2.print(”Escrito en LCD 2”);

Por tanto este método es más util y practico para manejar pocas LCD´s, especialmente 1 ó 2 pantallas. Para más pantallas usa demasiados pines.

 

En resumen, si se van a usar 1 ó 2 LCD´s sale mas a cuenta declarar las pantallas directamente. Si se van a usar 3 la cosa está igualada y dependerá del número de pines libres. Pero para 4 ó más pantallas el uso de puertas lógicas empieza a compensar, de forma exponencial. Veamoslo en una tabla:

Nº Pines extras Nº LCD´s controladas
 Método 1 Método 2
1  2  2
2  4  3
3  8  4
4  16  5

Obviamente este mismo método se puede usar para conectar todo tipo de periféricos que funcionen de forma similar, como lectores SD, por ejemplo.

Anterior

Como usar dos LCD con un arduino (I)

Siguiente

Especificaciones de Pi grow

1 Comentario

  1. Hola!

    Como llevas el proyecto? veo que tienes grandes ideas… a ver como te va!
    Saludos

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Creado con WordPress & Tema de Anders Norén