CONTENIDO ►
¿Cómo mostrar un carácter especial en el Arduino LCD 1602? La librería LiquidCrystal permite mostrar letras y números latinos en la pantalla y no soporta caracteres especiales. Veamos cómo crear tu propio símbolo para la estación meteorológica, y como extra, aquí tienes un programa para mostrar una línea de arrastre. Hay que tener en cuenta desde el principio que la capacidad de memoria del LCD 1602 i2c está limitada a ocho caracteres.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- la pantalla LCD 1602 I2C;
- cables de conexion;
- librerias LiquidCrystal_I2C.h
Cómo crear caracteres personalizados en LCD 16×2

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
El LCD 1602 admite 8 nuevos caracteres especiales con un tamaño de 5 por 8 píxeles. Un nuevo carácter para el LCD puede especificarse mediante una matriz de ocho bytes que caracterizan la cadena correspondiente. La memoria CGRAM del módulo puede almacenar sus propios caracteres, pero la capacidad de la memoria es limitada y sólo puede contener 8 caracteres especiales. Considere por ejemplo cómo mostrar el símbolo de grado °.
Programa Arduino caracteres personalizados en LCD 16×2
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,16,2); // // declaración de una matriz de 8 bytes // 1 para píxel encendido - 0 para píxel apagado byte simvol[8] = { 0b01100, 0b10010, 0b10010, 0b01100, 0b00000, 0b00000, 0b00000, 0b00000 }; void setup() { LCD.init(); LCD.backlight(); LCD.createChar(1, simvol); // creación del personaje personalizado LCD.setCursor(0,0); LCD.print(char(1)); // muestra el carácter personalizado } void loop() { }
Explicación del código caracteres personalizados en LCD 16×2:
- usando el array de bytes simvol[8] = { }; hemos cifrado el signo de grado;
- function lcd.createChar(num, data); crea un caracter personalizado para la LCD, donde num es el número del caracter y data es el array de datos entre paréntesis.
Creación de una línea de arrastre en LCD 16×2
Al crear la línea de arrastre, recuerde que la pantalla tiene 16 caracteres por línea (0 a 15), pero el controlador de pantalla tiene una memoria para 40 caracteres por línea. Si está utilizando un display LCD con módulo I2C, sólo necesitará 4 cables para montar el circuito. Después de conectar el LCD 1602, cargue el siguiente código. El programa se explica a continuación, si aún tienes dudas puedes dejarlas en los comentarios de este post.
Programme Arduino para desplazar texto en LCD 16×2
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,16,2); byte human[8] = { 0b01110, 0b10001, 0b01110, 0b00100, 0b11111, 0b00100, 0b01010, 0b10001 }; void setup() { LCD.init(); LCD.backlight(); LCD.createChar(1, human); } void loop() { for (int i = 0; i < 10; i++) { LCD.setCursor(i, 0); LCD.print(char(1)); delay(200); LCD.clear(); } for (int i = 10; i > 0; i--) { LCD.setCursor(i, 0); LCD.print(char(1)); delay(200); LCD.clear(); } }
Explicación del código para desplazar texto en LCD 16×2:
- cada vez que se modifica la variable i en el bucle for, tras 200 ms se borra la entrada y se muestra en una nueva ubicación;
- también puede utilizar las funciones scrollDisplayRight y scrollDisplayLeft.
Conclusión. Hemos visto una forma sencilla de crear nuestros propios caracteres especiales en la pantalla, que también funcionará para letras no incluidas en la librería estándar LiquidCrystal_I2C.h. Y también una forma de crear el texto real utilizando el bucle for, que se puede utilizar para crear juego en LCD Arduino o en proyectos.

Deja una respuesta