Generador de caracteres especiales para LCD

Más de una vez me ocurrió querer mostrar algún símbolo en una pantalla LCD, con controlador Hitachi HD44780, y que al encender el circuito eso no funcione como quería. Esto es porque el controlador almacena en su memoria una tabla de caracteres limitada. Pero…

El siempre útil símbolo de grados.

Arduino cuenta con una función dentro de la librería LiquidCrystal que nos permite diseñar un carácter: createChar().

Gracias a esta función es posible crear hasta 8 caracteres de 5×8 pixeles, numerados del 0 al 7. La apariencia de cada carácter es especificada por un array de ocho bytes, uno por cada fila. Los cinco bits menos significativos de cada byte determinan los pixeles en esa fila. Para mostrar un carácter personalizado en la pantalla simplemente usamos la función write() y su número.

Sintaxis

lcd.createChar(num, data)

Donde:

  • lcd es una variable de tipo LiquidCrystal
  • num es el número de carácter a crear (0 a 7)
  • data es el conjunto de datos que forman el carácter

Ejemplo de uso

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {
  B00000,
  B10001,
  B00000,
  B00000,
  B10001,
  B01110,
  B00000,
};

void setup() {
  lcd.createChar(0, smiley);
  lcd.begin(16, 2);  
  lcd.write(byte(0));
}

void loop() {}

Generador de caracteres

A veces resulta engorroso «dibujar» nuestro símbolo en el array, por fortuna contamos con herramientas que facilitan esta tarea. El generador de caracteres especiales para LCD es un script online que permite dibujar el carácter y obtener el código listo para usar. Es compatible con las librerías LiquidCrystal y LiquidCrystal I2C de Arduino.

Símbolos de los sprites utilizados en el juego Dinosaurio de Google.

Enlaces de interés