Conexión de LCD 1602 a Arduino: descripción, funciones, instrucciones, características, problemas y soluciones

Tabla de contenido:

Conexión de LCD 1602 a Arduino: descripción, funciones, instrucciones, características, problemas y soluciones
Conexión de LCD 1602 a Arduino: descripción, funciones, instrucciones, características, problemas y soluciones
Anonim

Todos los radioaficionados, después de un simple trabajo de bricolaje, llegan al objetivo de construir algo grandioso usando sensores y botones. Después de todo, es mucho más interesante mostrar datos en la pantalla que en el monitor del puerto. Pero entonces surge la pregunta: ¿qué pantalla elegir? Y en general, ¿cómo conectarlo, qué se necesita para conectarse? Las respuestas a estas preguntas se discutirán en este artículo.

Display LCD 1602 para conexión a arduino
Display LCD 1602 para conexión a arduino

LCD 1602

Entre las muchas opciones entre las pantallas, me gustaría destacar la pantalla LCD1602 basada en el controlador HD4478. Existe esta pantalla en dos colores: letras blancas sobre fondo azul, letras negras sobre fondo amarillo. Conectar el LCD 1602 al Arduino tampoco causará ningún problema, ya que hay una biblioteca incorporada y no necesita descargar nada adicional. Las pantallas difieren no solo en precio, sino también en tamaño. A menudo, los radioaficionados usan 16x 2, es decir, 2 líneas de 16 caracteres. Pero también está el 20 x 4, donde hay 4 líneas de 20 caracteres. Las dimensiones y el color no juegan ningún papel en la conexión de la pantalla lcd 1602 a Arduno, se conectan de la misma manera. El ángulo de visión es de 35 grados, el tiempo de respuesta de la pantalla es de 250 ms. Puede trabajar a temperaturas de -20 a 70 grados centígrados. Cuando funciona, utiliza 4 mA para la pantalla y 120 mA para la luz de fondo.

Configuración de pines de la pantalla LCD 1602
Configuración de pines de la pantalla LCD 1602

¿Dónde se usa?

Esta pantalla tiene su popularidad no solo entre los radioaficionados, sino también entre los grandes fabricantes. Por ejemplo, impresoras, máquinas de café también usan LCD1602. Esto se debe a su bajo precio, esta pantalla cuesta entre 200 y 300 rublos en los sitios chinos. Merece la pena comprar allí, ya que en nuestras tiendas los márgenes de este display son muy elevados.

Conectar a Arduino

Conectar LCD 1602 a Arduino Nano y Uno no es diferente. Se puede trabajar con el display en dos modos: 4 bits y 8. Cuando se trabaja con un display de 8 bits se utilizan tanto los bits inferiores como los superiores, y con uno de 4 bits solo los inferiores. No tiene ningún punto en particular trabajar con 8 bits, ya que se agregarán 4 contactos más para conectarse, lo cual no es recomendable, porque la velocidad no será mayor, el límite de actualización de la pantalla es de 10 veces por segundo. En general, se utilizan muchos cables para conectar el LCD 1602 al Arduino, lo que causa algunos inconvenientes, pero hay protectores especiales, de los que hablaremos más adelante. La foto muestra la conexión de la pantalla al Arduino Uno:

Conectando pantalla a arduino
Conectando pantalla a arduino

Ejemplo de código:


incluir //Agregue la biblioteca requerida LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) configuración vacía(){ lcd.begin(16, 2); // Establecer la dimensión de la pantalla lcd.setCursor(0, 0); // Coloque el cursor al principio de la línea 1 lcd.print("¡Hola, mundo!"); // Muestra el texto lcd.setCursor(0, 1); // Coloque el cursor al principio de la línea 2 lcd.print("fb.ru"); // Texto de salida } void loop(){ }

¿Qué hace el código? En primer lugar, la biblioteca para trabajar con la pantalla está conectada. Como se mencionó anteriormente, esta biblioteca ya está incluida en el IDE de Arduino y no necesita descargarla e instalarla adicionalmente. A continuación se definen los contactos que se conectan a los pines: RS, E, DB4, DB5, DB6, DB7, respectivamente. Luego se establece el tamaño de la pantalla. Como estamos trabajando con una versión de 16 caracteres y 2 líneas, escribimos dichos valores. Colocamos el cursor al principio de la primera línea y mostramos nuestro primer texto Hello World. A continuación, coloque el cursor en la segunda línea y muestre el nombre del sitio. ¡Eso es todo! Se consideró conectar lcd 1602 a Arduino Uno.

¿Qué es I2C y por qué es necesario?

Como se mencionó anteriormente, conectar la pantalla requiere muchos pines. Por ejemplo, cuando se trabaja con varios sensores y una pantalla LCD, 1602 contactos pueden no ser suficientes. A menudo, los radioaficionados utilizan las versiones Uno o Nano, donde no hay muchos contactos. Entonces a la gente se le ocurrieron escudos especiales. Por ejemplo, I2C. Le permite conectar la pantalla con solo 4 pines. Esto es dos veces menos. El módulo I2C se vende por separado, donde debe soldarlo usted mismo y ya está soldado aPantalla LCD 1602.

Módulo I2C para pantalla LCD 1602
Módulo I2C para pantalla LCD 1602

Conexión con módulo I2C

Conectar LCD 1602 a Arduino Nano con I2C ocupa poco espacio, solo 4 pines: tierra, alimentación y 2 salidas de datos. Conectamos alimentación y tierra a 5V y GND en el Arduino, respectivamente. Los dos contactos restantes: SCL y SDA están conectados a cualquier pin analógico. En la foto se puede ver un ejemplo de conexión de lcd 1602 a arduino con módulo I2C:

Mostrar conexiones usando el módulo I2C
Mostrar conexiones usando el módulo I2C

Código de programa

Si fuera necesario usar solo una biblioteca para trabajar con una pantalla sin un módulo, entonces se necesitan dos bibliotecas para trabajar con un módulo. Uno de ellos ya está en el IDE de Arduino - Wire. Otra biblioteca, LiquidCrystal I2C, debe descargarse e instalarse por separado. Para instalar la biblioteca en Arduino, el contenido del archivo descargado debe cargarse en la carpeta raíz Bibliotecas. Ejemplo de código usando I2C:


incluir incluir LiquidCrystal_I2C lcd(0x27, 16, 2); // Configurar la pantalla void setup() { lcd.init(); lcd.backlight();// Encienda la retroiluminación de la pantalla lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.imprimir("LCD 1602"); } void loop() { // Coloca el cursor en la segunda línea y el carácter nulo. lcd.setCursor(0, 1); // Imprime el número de segundos desde que se inició el arduino lcd.print(millis()/1000); }

Como puede ver, el código es casi el mismo.

¿Cómo agrego mi propio símbolo?

El problema con estas pantallas es que no haysoporte para cirílico y símbolos. Por ejemplo, necesita cargar algún carácter en la pantalla para que pueda reflejarlo. Para ello, la pantalla te permite crear hasta 7 de tus personajes. Presentar la tabla:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Si 0 - no hay nada ahí, si 1 - es un área sombreada. En el ejemplo anterior, puede ver la creación del personaje "smiley sonriente". Usando un programa de ejemplo en Arduino, se vería así:


include include // Incluir la biblioteca requerida // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LCD de cristal líquido (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) configuración vacía(){ lcd.begin(16, 2); // Establecer la dimensión de la pantalla lcd.createChar(1, smile); // Crear el carácter número 1 lcd.setCursor(0, 0); // Coloque el cursor al principio de la línea 1 lcd.print("\1"); // Mostrar el emoticón (carácter número 1) - "\1" } void loop(){ }

Como pueden ver, fue creadola máscara de bits es la misma que la tabla. Una vez creado, puede mostrarse como una variable en la pantalla. Recuerde que solo se pueden almacenar 7 caracteres en la memoria. En principio, esto es suficiente. Por ejemplo, si desea mostrar el símbolo de grado.

Adición de caracteres personalizados a la LCD 1602
Adición de caracteres personalizados a la LCD 1602

Problemas en los que la pantalla puede no funcionar

Hay ocasiones en las que la pantalla no funciona. Por ejemplo, enciende, pero no muestra caracteres. O no enciende en absoluto. Primero, vea si conectó los contactos correctamente. Si solía conectar lcd 1202 a Arduino sin I2C, entonces es muy fácil enredarse en los cables, lo que puede hacer que la pantalla funcione incorrectamente. También debe asegurarse de aumentar el contraste de la pantalla, ya que con el contraste mínimo ni siquiera es visible si el LCD 1602 está encendido o no. Si esto no ayuda, entonces quizás el problema esté en la soldadura de los contactos, esto es cuando se usa el módulo I2C. Además, una razón común por la que la pantalla puede no funcionar es la configuración incorrecta de la dirección I2C. El hecho es que hay muchos fabricantes y pueden establecer una dirección diferente, debe corregirla aquí:


LiquidCrystal_I2C lcd(0x27, 16, 2);

Entre paréntesis, puede ver dos valores, 0x27 y 16, 2 (16, 2 es el tamaño de visualización y 0x27 es solo la dirección I2C). En lugar de estos valores, puede intentar poner 0x37 o 0x3F. Bueno, otra razón es simplemente una pantalla LCD 1602 defectuosa. Teniendo en cuenta que casi todo para Arduino se fabrica en China, no puede estar 100% seguro de que la comprael producto no es defectuoso.

Pros y contras de LCD 1602

Veamos los pros y los contras del LCD 1602.

Ventajas

  • Precio. Este módulo se puede adquirir a un precio muy asequible en las tiendas chinas. El precio es de 200-300 rublos. A veces incluso se vende con un módulo I2C.
  • Fácil de conectar. Probablemente nadie conecte un LCD 1602 sin I2C en estos días. Y con este módulo, la conexión requiere solo 4 pines, no habrá "redes" de cables.
  • Programación. Gracias a las bibliotecas listas para usar, trabajar con este módulo es fácil, todas las funciones ya están registradas. Y si necesita agregar su personaje, solo le tomará un par de minutos.

Contras

Durante el tiempo de uso por parte de miles de radioaficionados, no se han identificado grandes inconvenientes, solo hay casos de compra de matrimonio, ya que se utilizan principalmente las opciones de visualización chinas

Este artículo analiza cómo conectar la pantalla LCD 1602 a Arduino y también presenta programas de muestra para trabajar con esta pantalla. Realmente es uno de los mejores en su categoría, ¡no es solo que miles de radioaficionados lo elijan para sus proyectos!

Recomendado: