¡Bienvenidos al tutorial definitivo sobre cómo usar una pantalla LCD 16×2 con Arduino! En este artículo, te enseñaremos todo lo que necesitas saber para configurar y controlar esta popular pantalla en tus proyectos de electrónica. Desde cómo conectar los cables correctamente hasta cómo mostrar texto y números en la pantalla, ¡aquí encontrarás toda la información que necesitas para dominar el uso de la pantalla LCD con Arduino! ¡Comencemos!
En este tutorial de Arduino aprenderemos cómo hacer uno. LCD (pantalla de cristal líquido) con arduino. Las pantallas LCD como estas son muy populares y ampliamente utilizadas en muchos proyectos de electrónica porque son excelentes para mostrar información simple, como datos de sensores, y al mismo tiempo son muy asequibles.
Ya los he usado en varios de mis proyectos Arduino y puedes probarlos aquí:
- Proyecto de sistema de alarma y seguridad arduino.
- Máquina expendedora de bricolaje: proyecto de mecatrónica basado en Arduino
- Telémetro Arduino y nivel de burbuja digital
Puede ver el vídeo a continuación o leer el tutorial escrito a continuación. Contiene todo lo que necesitas saber sobre el uso de una pantalla de caracteres LCD con Arduino, como por ejemplo: B. Distribución de pines de LCD, diagrama de circuito y varios códigos de ejemplo.
¿Qué es una pantalla de caracteres LCD?
Una pantalla de caracteres LCD es un tipo especial de pantalla que solo se puede utilizar individualmente ASCII Caracteres de tamaño fijo. Luego podemos formar un texto a partir de estos caracteres individuales.
Si miras de cerca, notarás que hay pequeñas áreas rectangulares formadas por una cuadrícula de 5×8 píxeles. Cada píxel puede iluminarse individualmente, permitiéndonos crear personajes dentro de cada cuadrícula.
El>
Configuración de pines LCD de 16 × 2
Tiene 16 pines y el primero de izquierda a derecha es el Piso Código PIN. El segundo pin es el VCC al que conectamos el pin de 5 voltios de la placa Arduino. Luego viene el pin Vo, al que podemos conectar un potenciómetro para controlar el contraste de la pantalla.
Próximo RS Los pines de selección de pin o registro se utilizan para seleccionar si enviamos comandos o datos a la pantalla LCD. Por ejemplo, cuando el pin RS está configurado en estado bajo o cero voltios, enviamos comandos a la pantalla LCD como: colocar el cursor en una ubicación específica, borrar la pantalla, apagar la pantalla, etc. Y cuando el pin RS está configurado en alto o 5 voltios, enviamos datos o caracteres a la pantalla LCD.
Luego>Escritura/Escritura Pin que selecciona el modo si leemos o escribimos en el LCD. Aquí el modo de escritura es obvio y se utiliza para escribir o enviar comandos y datos a la pantalla LCD. El modo de lectura lo utiliza la propia pantalla LCD cuando se ejecuta el programa, lo cual no es necesario explicar en detalle en este tutorial.
Luego viene este mi Pin que permite escribir en los registros, o los siguientes 8 pines de datos de D0 a D7. Entonces, a través de estos pines enviamos los datos de 8 bits cuando escribimos en los registros o, por ejemplo, si queremos ver la última A grande en la pantalla, enviamos 0100 0001 a los registros según la tabla ASCII. Los dos últimos pines A Y ko el ánodo y el cátodo son para la retroiluminación LED.
En última instancia, no tenemos que preocuparnos mucho por cómo funciona la pantalla LCD porque la Biblioteca de Cristal Líquido se encarga de casi todo. En el sitio web oficial de Arduino, puede encontrar y ver las funciones de la biblioteca que permiten un fácil uso de la pantalla LCD. Podemos utilizar la biblioteca en modo de 4 u 8 bits. En este tutorial los usaremos en modo de 4 bits o solo usaremos 4 de los 8 pines de datos.
Cómo conectar Arduino a una pantalla LCD – Diagrama de circuito
Entonces necesitamos conectar la pantalla LCD de 16 × 2 a una placa Arduino.
Sólo utilizamos 6 pines de entrada digital de la placa Arduino. La pantalla LCD registra D4 a D7 Está conectado a los pines digitales 4 a 7 del Arduino. Activar El pin está conectado al pin número 2 y el RS El pin está conectado al pin número 1. El Escritura/Escritura El pin está conectado a tierra y el vo El pin está conectado al pin central del potenciómetro.
Puede obtener estos componentes en uno de los siguientes sitios web:
- LCD de 16×2 caracteres…………………….. Amazon / Banggood / AliExpress
- Potenciómetro ……………………………. Amazonas / Banggood / AliExpress
- Placa Arduino……………………………… Amazon / Banggood / AliExpress
- Cables de puente y placa de pruebas………… Amazon / Banggood / AliExpress
Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Ajustar el contraste de la pantalla LCD
Podemos ajustar el contraste de la pantalla LCD ajustando el voltaje de entrada en vo Código PIN. Usamos un potenciómetro porque de esta manera podemos ajustar fácilmente el contraste ajustando el voltaje de entrada de 0 a 5V.
¿Puedo usar la pantalla LCD sin potenciómetro?
Sí, si no tenemos un potenciómetro, aún podemos ajustar el contraste del LCD usando un divisor de voltaje formado por dos resistencias. Usando el divisor de voltaje necesitamos ajustar el valor del voltaje entre 0 y 5V para obtener un buen contraste en la pantalla. Descubrí que un voltaje de alrededor de 1 V funcionaba bien para mi LCD. Utilicé resistencias de 1K y 220 ohmios para conseguir un buen contraste.
También>vo Pin de la pantalla LCD. Podemos hacerlo vo Pin a cualquier pin compatible con Arduino PWM y en la sección de configuración podemos usar la siguiente línea de código:
analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)
Code language: Arduino (arduino)
Se genera una señal PWM en el pin D11 con un valor de 100 de 255, que se traduce en un voltaje de 0 a 5 V, se convierte en una entrada de aproximadamente 2 V en vo Bolígrafo LCD.
Código Arduino LCD
Aquí hay un código simple que podemos usar para explicar el principio de funcionamiento de la biblioteca Liquid Crystal. Este es el código del primer ejemplo del vídeo:
/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display }
}
void loop() {
lcd.print("Arduino"); // Prints "Arduino" on the LCD
delay(3000); // 3 seconds delay
lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD Tutorial");
delay(3000);
lcd.clear(); // Clears the display
lcd.blink(); //Displays the blinking LCD cursor
delay(4000);
lcd.setCursor(7,1);
delay(3000);
lcd.noBlink(); // Turns off the blinking LCD cursor
lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written
delay(4000);
lcd.noCursor(); // Hides the LCD cursor
lcd.clear(); // Clears the LCD screen
}
Code language: Arduino (arduino)
Descripción del código:
Primero necesitamos insertar la Biblioteca de Cristal Líquido. Aquí se explica cómo hacerlo: Bosquejo > Incluir biblioteca > Cristal líquido. Entonces necesitamos crear un objeto LC. Los parámetros de este objeto deben ser los números de los pines de entrada digital de la placa Arduino o los pines del LCD, de la siguiente manera: (RS, Enable, D4, D5, D6, D7). En la configuración, debemos inicializar la interfaz de la pantalla LCD y hacer coincidir las dimensiones de la pantalla con las comenzar() Función.
Escribimos nuestro programa principal en el bucle. Con el prensa() Función que imprimimos en el LCD.
lcd.print("Arduino"); // Prints "Arduino" on the LCD
Code language: Arduino (arduino)
El establecerCursor() La función se utiliza para establecer la posición donde se mostrará el texto posterior escrito en la pantalla LCD.
lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
Code language: Arduino (arduino)
El destello() La función se utiliza para mostrar un cursor parpadeante y el parpadeo() Función de apagado.
lcd.blink(); //Displays the blinking LCD cursor
Code language: Arduino (arduino)
El Cursor() La función se utiliza para mostrar el cursor de subrayado y el sin cursor() Función de apagado. Con el claro() Con esta función podremos limpiar la pantalla LCD.
lcd.clear(); // Clears the LCD screen
Code language: Arduino (arduino)
Ejemplo de desplazamiento de texto en LCD 16×2 y Arduino
Si tenemos un texto con más de 16 caracteres, podemos desplazar el texto usando el desplazamientoPantallaIzquierda() o desplazamientoPantallaDerecha() Función de la biblioteca LiquidCrystal.
Aquí hay un código de ejemplo:
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2);
lcd.print("Scrolling Text Example");
}
void loop() {
lcd.scrollDisplayLeft();
delay(500);
}
Code language: Arduino (arduino)
Podemos elegir si queremos que el texto se desplace hacia la izquierda o hacia la derecha usando el botón desplazamientoPantallaIzquierda() o desplazamientoPantallaDerecha() Características. Con el Demora() Función que podemos ajustar la velocidad de desplazamiento.
Si desea tener más control sobre el desplazamiento del texto, también puede hacerlo usted mismo utilizando un bucle for. Aquí hay un ejemplo:
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
// scroll text to the right
for (int i = 0; i <= 13; i++) {
lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD");
delay(500); // 1 second delay
lcd.clear(); // Write a character to the LCD
}
// scroll text to the left
for (int i = 12; i >= 1; i--) {
lcd.setCursor(i, 0);
lcd.print("LCD");
delay(500);
lcd.clear();
}
}
Code language: Arduino (arduino)
Cómo generar y mostrar caracteres personalizados en la pantalla LCD
Además de los caracteres ASCII, también es posible generar caracteres personalizados y mostrarlos en la pantalla LCD utilizando la biblioteca LiquidCrystal.
Podemos>
#include <LiquidCrystal.h>
byte heart[8] = { // Array of bytes
B00000, // B stands for binary formatter and the five numbers are the pixels
B01010,
B11111,
B11111,
B01110,
B00100,
B00000,
B00000
};
byte smile[8] = {
B00000,
B00000,
B01010,
B00000,
B10001,
B01110,
B00000,
B00000
};
byte lock[8] = {
B01110,
B10001,
B10001,
B11111,
B11011,
B11011,
B11111,
B00000
};
byte character[8] = {
B11111,
B10101,
B11111,
B01010,
B01110,
B11111,
B01110,
B01110
};
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
lcd.createChar(0, heart); // Create a custom character
lcd.createChar(1, smile);
lcd.createChar(2, lock);
lcd.createChar(3, character);
// Clears the LCD screen
lcd.clear();
// Print a message to the LCD
lcd.print("Custom Character");
}
void loop() {
lcd.setCursor(1, 1);
lcd.write(byte(0)); // Display the custom character 0, the heart
lcd.setCursor(5, 1);
lcd.write(byte(1));
lcd.setCursor(9, 1);
lcd.write(byte(2));
lcd.setCursor(13, 1);
lcd.write(byte(3));
}
Code language: Arduino (arduino)
Podemos ver cómo podemos configurar la apariencia del personaje cambiando los ceros a unos dentro de la cuadrícula de 5×8 píxeles.
En>crear personaje() Función.
lcd.createChar(0, heart); // Create a custom character
Code language: Arduino (arduino)
El primer parámetro de esta función es un número entre 0 y 7, o debemos reservar uno de los 8 caracteres personalizados admitidos. El segundo parámetro es el nombre de la matriz de bytes.
Escribimos el carácter personalizado en la pantalla usando el escribir() Función y como parámetro usamos el número del personaje.
lcd.write(byte(0)); // Display the custom character 0, or the heart
Code language: Arduino (arduino)
Ver también: Tutorial de pantalla táctil Arduino | LCD TFT
Diploma
Hemos cubierto prácticamente todo lo que necesitamos saber sobre el uso de una pantalla LCD con Arduino. Estas pantallas de caracteres LCD son realmente convenientes para mostrar información para muchos proyectos electrónicos. En los ejemplos anteriores utilicé una pantalla LCD de 16×2, pero el mismo principio de funcionamiento se aplica a cualquier otro tamaño de estas pantallas de caracteres.
Espero que hayas disfrutado este tutorial y hayas aprendido algo nuevo. No dudes en hacer tus preguntas en la sección de comentarios a continuación y no olvides consultar mi colección completa de más de 30 proyectos Arduino.
En este tutorial de Arduino vamos a aprender cómo conectar y utilizar una pantalla LCD (pantalla de cristal líquido) con Arduino. Las pantallas LCD como estas son muy populares y ampliamente utilizadas en muchos proyectos de electrónica porque son ideales para mostrar información simple, como datos de sensores, y además son muy asequibles.
¿Qué es una pantalla LCD de caracteres?
Una pantalla LCD de caracteres es un tipo de pantalla único que solo puede emitir caracteres ASCII individuales con un tamaño fijo. Usando estos caracteres individuales podemos formar un texto completo. Si observamos de cerca la pantalla, podemos notar que hay áreas rectangulares pequeñas compuestas por una cuadrícula de 5×8 píxeles. Cada píxel puede encenderse individualmente, permitiéndonos generar caracteres dentro de cada cuadrícula. La cantidad de áreas rectangulares define el tamaño de la LCD. La LCD más popular es la 16×2, que tiene dos filas con 16 áreas o caracteres rectangulares. Por supuesto, hay otros tamaños como 16×1, 16×4, 20×4, y así sucesivamente, pero todos funcionan con el mismo principio. Además, estas LCDs pueden tener diferentes colores de fondo y texto.
¿Cómo conectar Arduino a una LCD? – Diagrama de conexión
Aquí está cómo debemos conectar la pantalla LCD 16×2 a una placa de Arduino. Utilizaremos solo 6 pines de entrada digital de la placa de Arduino. Los registros de LCD de D4 a D7 se conectarán a los pines digitales de Arduino de 4 a 7. El pin Enable se conectará al pin número 2 y el pin RS se conectará al pin número 1. El pin R/W se conectará a tierra y el pin Vo se conectará al pin central del potenciómetro.
¿Cómo ajustar el contraste de la LCD?
Podemos ajustar el contraste de la LCD ajustando el voltaje de entrada en el pin Vo. Estamos utilizando un potenciómetro porque de esa manera podemos afinar fácilmente el contraste, ajustando el voltaje de entrada de 0 a 5V.
¿Puedo usar la LCD sin potenciómetro?
Sí, en caso de que no tengamos un potenciómetro, aún podemos ajustar el contraste de la LCD usando un divisor de voltaje hecho con dos resistencias. Usando el divisor de voltaje necesitamos establecer el valor de voltaje entre 0 y 5V para obtener un buen contraste en la pantalla.
¿Cómo generar y mostrar caracteres personalizados en la LCD?
Además de los caracteres ASCII, con la librería LiquidCrystal también es posible generar y mostrar caracteres personalizados en la LCD. Podemos especificar la apariencia de cada carácter mediante un array de 8 bytes. El primer parámetro en la función createChar() es un número entre 0 y 7, o debemos reservar uno de los 8 caracteres personalizados admitidos. El segundo parámetro es el nombre del array de bytes.
En conclusión, hemos cubierto prácticamente todo lo que necesitamos saber sobre el uso de una LCD con Arduino. Estas pantallas de caracteres LCD son realmente útiles para mostrar información en muchos proyectos de electrónica. Espero que hayas disfrutado de este tutorial y aprendido algo nuevo. No dudes en hacer cualquier pregunta en la sección de comentarios. Y no te olvides de consultar mi colección completa de más de 30 proyectos de Arduino.
Me parece súper útil esta información, definitivamente me ayudó a entender mejor cómo funciona el LCD con Arduino. ¡Gracias por compartir!
¡Qué buen tutorial! Me dio una idea clara de cómo usar el LCD con Arduino. ¡Gracias por la explicación detallada!