en este tutorial, explicaré cómo configurar un LCD en un Arduino y le mostraré todas las diferentes formas en que puede programarlo. Te mostraré cómo imprimir texto, desplazar texto, hacer caracteres personalizados, parpadear texto y posicionar texto. Son excelentes para cualquier proyecto que produzca datos, y pueden hacer que su proyecto sea mucho más interesante e interactivo.
la pantalla que estoy usando es una pantalla LCD de 16×2 Que compré por aproximadamente 5 5. Es posible que se pregunte por qué se llama una pantalla LCD de 16×2., La Parte 16×2 significa que la pantalla LCD tiene 2 líneas y puede mostrar 16 caracteres por línea. Por lo tanto, una pantalla LCD de 16×2 puede mostrar hasta 32 caracteres a la vez. Sin embargo, es posible mostrar más de 32 caracteres con desplazamiento.
el código en este artículo está escrito para LCD que utilizan el controlador estándar Hitachi HD44780. Si su LCD tiene 16 pines, entonces probablemente tenga el controlador Hitachi HD44780. Estas pantallas se pueden cablear en modo de 4 bits o en modo de 8 bits. El cableado de la pantalla LCD en modo de 4 bits se prefiere generalmente, ya que utiliza cuatro cables menos que el modo de 8 bits., En la práctica, no hay una diferencia notable en el rendimiento entre los dos modos. En este tutorial, conectaré la pantalla LCD en modo de 4 bits.
conectando el LCD al Arduino
Aquí hay un diagrama de los pines en el LCD que estoy usando. Las conexiones de cada pin al Arduino serán las mismas, pero sus pines pueden estar dispuestos de manera diferente en la pantalla LCD., Asegúrese de revisar la hoja de datos o busque las etiquetas de su particular LCD:
También, usted puede ser que necesite para la soldadura de 16 pines para su LCD antes de conectarlo a un circuito. Siga el diagrama a continuación para conectar la pantalla LCD a su Arduino:
la resistencia en el diagrama anterior establece el brillo de la luz de fondo. Un valor típico es 220 ohmios, pero otros valores también funcionarán., Las resistencias más pequeñas harán que la luz de fondo sea más brillante.
El potenciómetro se utiliza para ajustar el contraste de la pantalla. Normalmente uso un potenciómetro de 10K Ohm, pero otros valores también funcionarán.
Aquí está la hoja de datos para la pantalla LCD de 16×2 con toda la información técnica sobre la pantalla:
16×2 LCD Datasheet
rduino
todo el código a continuación utiliza la biblioteca liquidcrystal que viene preinstalada con el IDE de arduino., Una biblioteca es un conjunto de funciones que se pueden agregar fácilmente a un programa en un formato abreviado.
para poder utilizar una biblioteca, es necesario incluirla en el programa. La línea 1 del siguiente código hace esto con el comando #include <LiquidCrystal.h>
. Cuando se incluye una biblioteca en un programa, todo el código de la biblioteca se carga en Arduino junto con el código de su programa.
Ahora estamos listos para entrar en la programación! Voy a repasar cosas más interesantes que puede hacer en un momento, pero por ahora vamos a ejecutar un programa de prueba simple. Este programa imprimirá » hello, world!,»a la pantalla. Introduzca este código en el IDE de Arduino y cárguelo a la placa:
#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { lcd.begin(16, 2); lcd.print("hello, world!");}void loop() {}
su pantalla LCD debería tener este aspecto:
opciones de pantalla LCD
hay 19 funciones diferentes en la biblioteca liquidcrystal disponibles para que las usemos. Estas funciones hacen cosas como cambiar la posición del texto, mover el texto a través de la pantalla o hacer que la pantalla se active o desactive. Lo que sigue es una breve descripción de cada función, y cómo usarla en un programa.,
LiquidCrystal()
El LiquidCrystal()
función establece los pines del Arduino utiliza para conectarse a la pantalla LCD. Puede utilizar cualquiera de los pines digitales de Arduino para controlar la pantalla LCD. Simplemente coloque los números de pin Arduino dentro de los paréntesis en este orden:
LiquidCrystal(RS, E, D4, D5, D6, D7)
RS, e, D4, D5, D6, D7 son los pines LCD.
por ejemplo, supongamos que desea que el pin LCD D7 se conecte al pin Arduino 12., Simplemente coloque»12″en lugar de D7 en la función de esta manera:
LiquidCrystal(RS, E, D4, D5, D6, 12)
Esta función debe colocarse antes de la sección void setup()
del programa.
lcd.begin()
Esta función establece las dimensiones de la pantalla LCD. Debe colocarse antes de cualquier otra función LiquidCrystal en la sección void setup()
del programa. El número de filas y columnas se especifica como lcd.begin(columns, rows)
., Para una LCD de 16×2, usaría lcd.begin(16, 2)
, y para una LCD de 20×4 usaría lcd.begin(20, 4)
.
lcd.clear()
Esta función borra cualquier texto o dato ya mostrado en la pantalla LCD., Si utilizas lcd.clear()
lcd.print()
y el delay()
función en el void loop()
sección, usted puede hacer un simple parpadeo programa de texto:
lcd.home()
Esta función coloca el cursor en la esquina superior izquierda de la pantalla y se imprime cualquier texto desde esa posición. Por ejemplo, este código reemplaza las tres primeras letras de «hello world!,»con X:
lcd.setCursor()
Similar, pero más útil que el lcd.home()
es lcd.setCursor()
. Esta función coloca el cursor (y cualquier texto impreso) en cualquier posición de la pantalla. Se puede utilizar en la sección void setup()
o void loop()
de su programa.
la posición del cursor se define con lcd.setCursor(column, row)
. Las coordenadas de columna y fila comienzan desde cero (0-15 y 0-1 respectivamente)., Por ejemplo, usando lcd.setCursor(2, 1)
en la sección void setup()
de la sección «hello, world!»program above prints» ¡Hola, mundo!»a la línea inferior y se desplaza a la derecha los dos espacios:
lcd.write()
puede utilizar esta función para escribir distintos tipos de datos de la LCD, por ejemplo, la lectura de un sensor de temperatura, o las coordenadas de un módulo GPS., También puede usarlo para imprimir caracteres personalizados que cree usted mismo (más sobre esto a continuación). El uso de lcd.write()
en el void setup()
o void loop()
sección de su programa.
lcd.print()
Esta función se utiliza para imprimir el texto en la pantalla LCD. Se puede utilizar en la sección void setup()
o en la sección void loop()
del programa.
para imprimir números, no se necesitan comillas. Por ejemplo, para imprimir 123456789, use lcd.print(123456789)
.,
lcd.print()
puede imprimir números en bases decimales, binarias, hexadecimales y octales. Por ejemplo:
lcd.cursor()
Esta función crea un cursor visible. El cursor es una línea horizontal situada debajo del siguiente carácter que se imprimirá en la pantalla LCD.
La función de lcd.noCursor()
activa el cursor fuera., lcd.cursor()
y lcd.noCursor()
se pueden usar juntos en la sección void loop()
para hacer un cursor parpadeante similar a lo que se ve en muchos campos de entrada de texto:
esto coloca un cursor parpadeante después del signo de exclamación en » hello, world!»
Los cursores se pueden colocar en cualquier lugar de la pantalla con la función lcd.setCursor()
. Este código coloca un cursor parpadeante directamente debajo del signo de exclamación en » hello, world!,»:
lcd.blink()
esta función crea un cursor de estilo de bloque que parpadea a aproximadamente 500 milisegundos por ciclo. Utilícelo en la sección void loop()
. La función lcd.noBlink()
desactiva el cursor de bloque parpadeante.
lcd.display()
Esta función activa cualquier texto o cursores que se hayan impreso en la pantalla LCD. La función lcd.noDisplay()
desactiva cualquier texto o cursores impresos en la pantalla LCD, sin borrarlo de la memoria de la pantalla.,
estas dos funciones se pueden usar juntas en la sección void loop()
para crear un efecto de texto parpadeante. Este código hará que el » Hola, mundo!»text blink on and off:
lcd.scrollDisplayLeft()
esta función toma cualquier cosa impresa en la pantalla LCD y la mueve a la izquierda. Debe usarse en la sección void loop()
con un comando de retardo a continuación. La función moverá el texto 40 espacios a la izquierda antes de que vuelva al primer carácter. Este código mueve el » Hola, mundo!,»texto a la izquierda, a una velocidad de un segundo por carácter:
Las cadenas de texto de más de 40 espacios se imprimirán en la línea 1 después de la posición 40, mientras que el inicio de la cadena continuará imprimiéndose en la línea 0.
lcd.scrollDisplayRight()
Esta función se comporta como lcd.scrollDisplayLeft()
, pero se mueve en el texto a la derecha.
lcd.autoscroll()
Esta función recibe una cadena de texto y se desplaza de derecha a izquierda en incrementos de la cuenta de caracteres de la cadena., Por ejemplo, si tiene una cadena de texto que tiene 3 caracteres de largo, desplazará el texto 3 espacios a la izquierda con cada paso:
Al igual que las funciones lcd.scrollDisplay()
, el texto puede tener hasta 40 caracteres de longitud antes de repetir. A primera vista, esta función parece menos útil que las funciones lcd.scrollDisplay()
, pero puede ser muy útil para crear animaciones con caracteres personalizados.
lcd.noAutoscroll()
lcd.noAutoscroll()
turnos lcd.autoscroll()
función de apagado., Utilice esta función antes o después de lcd.autoscroll()
en la sección void loop()
para crear secuencias de texto con desplazamiento o animaciones.
lcd.rightToLeft()
Esta función establece la dirección en la que el texto se imprime en la pantalla. El modo predeterminado es de izquierda a derecha usando el comando lcd.leftToRight()
, pero puede encontrar algunos casos en los que es útil generar texto en la dirección inversa:
este código imprime el «hello, world!»texto como»!dlrow, olleh»., A menos que especifique la ubicación del cursor con lcd.setCursor()
, el texto se imprimirá desde la posición (0, 1) y solo el primer carácter de la cadena será visible.
lcd.createChar()
con Este comando le permite crear sus propios personajes. Cada carácter de una pantalla LCD de 16×2 tiene un ancho de 5 píxeles y una altura de 8 píxeles. Se pueden definir hasta 8 caracteres personalizados diferentes en un solo programa., Para diseñar tus propios personajes, tendrás que hacer una matriz binaria de tu personaje personalizado desde un generador de caracteres LCD o mapearlo tú mismo. Este código crea un símbolo de grado (°):
¡hay muchas cosas interesantes que puede hacer que sucedan con estas pantallas LCD de 16×2! Intente combinar algunas de estas funciones y vea qué sucede.
Aquí hay una versión en video de este tutorial para que pueda ver lo que hace cada función en la pantalla LCD en tiempo real: