Arduino Nano - LCD

Este tutorial te enseña cómo usar una pantalla LCD con Arduino Nano, cómo programar con Arduino Nano para mostrar texto y caracteres especiales en la pantalla LCD.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×LCD I2C
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca de LCD I2C 16x2

LCD I2C está compuesto por un LCD estándar, un módulo I2C y un potenciómetro. Se recomienda encarecidamente usar el LCD I2C en lugar del LCD estándar. Eso se debe a que usar el LCD I2C facilita mucho el cableado.

Pinout de la pantalla LCD

La LCD I2C utiliza la interfaz I2C para conectarse al Arduino Nano. Tiene cuatro pines:

  • El pin GND debe conectarse a tierra (0 V).
  • El pin VCC es la fuente de alimentación para la pantalla LCD y debe conectarse a VCC (5 V).
  • El pin SDA es la señal de datos I2C.
  • El pin SCL es la señal de reloj I2C.
Esquema de pines LCD I2C

Coordenada LCD

La pantalla LCD I2C 16x2 tiene 16 columnas y 2 filas, y las columnas y filas se numeran a partir de 0.

Coordenada LCD I2C de Arduino Nano

Diagrama de Cableado

Diagrama de cableado de Arduino Nano LCD I2C

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

LCD I2C module Arduino Nano
Vin 5V
GND GND
SDA A4
SCL A5

Cómo programar para LCD I2C

Es necesario incluir la biblioteca LiquidCrystal_I2C para poder usar la pantalla LCD.

  • Configurar la pantalla LCD:

La pantalla LCD debe estar configurada correctamente para que funcione correctamente.

  • Escribe en la pantalla LCD:

Escribir en la pantalla LCD es fácil gracias a la biblioteca LiquidCrystal_I2C.

#include <LiquidCrystal_I2C.h> // Library for LCD
  • Crea un objeto LiquidCrystal_I2C con una dirección I2C, el número de columnas y el número de filas especificados.
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
  • Enciende la pantalla LCD.
lcd.init(); //initialize the lcd lcd.backlight(); //open the backlight
  • Ve a la columna y la fila indicadas por column_index y row_index, respectivamente.
lcd.setCursor(column_index, row_index);
  • Muestra un mensaje en la pantalla LCD.
lcd.print("Hello World!");

Explora las posibilidades de lo que se puede lograr con LCD al revisar la sección 'Haz más con LCD'.

※ Nota:

La dirección del LCD puede variar según el fabricante. Para nuestro código, utilizamos 0x27 tal como lo especifica DIYables.

Código de Arduino Nano

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.setCursor(3, 0); // move cursor to (3, 0) lcd.print("DIYables"); // print message at (3, 0) lcd.setCursor(0, 1); // move cursor to (0, 1) lcd.print("www.diyables.io"); // print message at (0, 1) } void loop() { }

Pasos R\u00e1pidos

  • Haz clic en el icono Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca "LiquidCrystal I2C" y localiza la biblioteca LiquidCrystal_I2C creada por Frank de Brabander.
  • Luego, haz clic en el botón Instalar para agregar la biblioteca.
Biblioteca LiquidCrystal I2C para Arduino Nano
  • Copia el código y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE para enviar el código al Arduino Nano.
  • Comprueba la pantalla LCD para ver el resultado.
Arduino Nano: mostrar texto en la pantalla LCD
  • Experimenta cambiando el texto y su ubicación.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Haz más con LCD

Personaje personalizado

lcd.print() solo funciona con caracteres ASCII. Para mostrar un carácter o símbolo especial (p. ej. corazón, pájaro enojado), debes usar el generador de caracteres.

Un LCD 16x2 puede mostrar hasta 32 caracteres. Cada carácter está formado por 40 píxeles, que están dispuestos en 8 filas y 5 columnas.

Arduino Nano LCD 16x2 píxel

El generador de personajes crea un personaje de 40 píxeles de tamaño. Para usarlo, simplemente siga estos pasos:

Click on each pixel to select/deselect


Copy below custom character code
Replace the customChar[8] in the below code
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.createChar(0, customChar); // create a new custom character lcd.setCursor(2, 0); // move cursor to (2, 0) lcd.write((byte)0); // print the custom char at (2, 0) } void loop() { }

La pantalla LCD mostró el resultado. El resultado se mostró en la pantalla LCD.

carácter personalizado de LCD

Varios caracteres personalizados

Podemos crear un máximo de 8 caracteres personalizados, numerados del 0 al 7. A continuación se muestra un ejemplo de cómo crear y mostrar tres de ellos.

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.createChar(0, customChar0); // create a new custom character (index 0) lcd.createChar(1, customChar1); // create a new custom character (index 1) lcd.createChar(2, customChar2); // create a new custom character (index 2) lcd.setCursor(2, 0); // move cursor to (2, 0) lcd.write((byte)0); // print the custom char 0 at (2, 0) lcd.setCursor(4, 0); // move cursor to (4, 0) lcd.write((byte)1); // print the custom char 1 at (4, 0) lcd.setCursor(6, 0); // move cursor to (6, 0) lcd.write((byte)2); // print the custom char 2 at (6, 0) } void loop() { }

El resultado mostrado en la pantalla LCD es: . El resultado que aparece en la pantalla LCD es:

LCD con múltiples caracteres personalizados

Resumen: cómo usar un carácter personalizado en una pantalla LCD

  • Utiliza el generador de caracteres para generar código binario para tu carácter personalizado.
  • Copia el código binario generado en el paso anterior.
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };
  • Asigna un carácter personalizado a un valor de índice que vaya de 0 a 7 dentro de la función setup().
lcd.createChar(index, customChar);
  • Imprimir el carácter personalizado en la pantalla LCD en cualquier momento, ya sea en la función setup() o en la función loop().
lcd.setCursor(column, row); // move cursor to a desired position lcd.write((byte)index); // print the custom char at the desired position

Otras funciones

  • Imprimir "Hola Mundo"

Inserte las siguientes funciones en la función loop(), una a la vez, con un retraso de 5000 milisegundos después de cada una:

  • Limpiar la pantalla LCD
  • Imprimir "Hello World"
lcd.clear();
  • Pantalla
  • Coloque el cursor en la esquina superior izquierda de la pantalla LCD.
lcd.home();
  • Coloca el cursor en una columna y fila determinadas.
lcd.setCursor(column, row);
  • Muestra el cursor LCD en la pantalla.
lcd.cursor();
  • Hace que el cursor de la pantalla LCD sea invisible.
lcd.noCursor();
  • Mostrar el cursor LCD parpadeante.
lcd.blink()
  • Desactivar el parpadeo del cursor LCD.
lcd.noBlink()

Desafíate a ti mismo

Prueba a usar una pantalla LCD para alguno de estos proyectos:

Solución de problemas en LCD I2C

  1. Gira el potenciómetro ubicado en la parte trasera de la pantalla LCD para ajustar su contraste.
  2. Dependiendo del fabricante, la dirección I2C de la pantalla LCD puede ser diferente. Generalmente, la dirección I2C predeterminada de la pantalla LCD es 0x27 o 0x3F. Prueba ambos valores. Si aún no tienes éxito, ejecuta el código a continuación para encontrar la dirección I2C.*
// I2C address scanner program #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for next scan }

La salida mostrada en el Monitor Serial es: . El resultado que aparece en el Monitor Serial es:

COM6
Send
Scanning... I2C device found at address 0x3F ! done Scanning... I2C device found at address 0x3F ! done
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!