Menu
CoddyTech

Dibujar caracteres personalizados

Parte de la sección Pantallas y sensores del Journey de Arduino de Coddy. Lección 10 de 24.

Cada carácter de la pantalla LCD es una cuadrícula de 5 por 8 puntos. Puedes diseñar hasta ocho propios, numerados del 0 al 7. Describe uno con 8 filas, cada una con un patrón de 5 bits donde 1 representa un punto encendido:

byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000,
  0b00000
};

lcd.createChar(0, heart) lo almacena como el carácter 0. lcd.write(byte(0)) lo dibuja donde está el cursor. print(0) dibujaría el dígito 0 en su lugar.

Una trampa: para almacenar un carácter, la biblioteca dirige la pantalla a su memoria de caracteres, y esta permanece allí. Todo lo que se imprima después se escribe en esa memoria, no en la pantalla. Así que llama a lcd.setCursor() (o lcd.clear()) después de createChar(), antes de imprimir.

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // de vuelta a la pantalla
lcd.write(byte(0));
challenge icon

Desafío

Intermedio

El diseño inicial tiene una carita sonriente. Di hola con ella:

  • guárdala como el carácter 0 con lcd.createChar()
  • mueve el cursor a la esquina superior izquierda
  • imprime Hi (con un espacio), después dibuja la carita sonriente

Pulsa Run y después Check.

Pruébalo tú mismo

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {
  0b00000,
  0b01010,
  0b01010,
  0b00000,
  0b10001,
  0b01110,
  0b00000,
  0b00000
};

void setup() {
  lcd.begin(16, 2);

  // guarda la carita sonriente como carácter 0, luego imprime "Hi " y la carita sonriente
}

void loop() {
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Pantallas y sensores

Practica por tu cuenta: Playground de Arduino