Menu
CoddyTech

Desenhe caracteres personalizados

Parte da seção Displays e sensores do Journey de Arduino da Coddy. Lição 10 de 24.

Cada caractere no LCD é uma grade de 5 por 8 pontos. Você pode criar até oito caracteres próprios, numerados de 0 a 7. Descreva um deles com 8 linhas, cada uma com um padrão de 5 bits em que 1 representa um ponto aceso:

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

lcd.createChar(0, heart) o armazena como caractere 0. lcd.write(byte(0)) o desenha na posição do cursor. print(0) desenharia o dígito 0.

Uma armadilha: para armazenar um caractere, a biblioteca aponta a tela para a memória de caracteres, e ela continua apontada para lá. Tudo o que for impresso em seguida vai para essa memória, não para a tela. Portanto, chame lcd.setCursor() (ou lcd.clear()) depois de createChar(), antes de imprimir.

lcd.createChar(0, heart);
lcd.setCursor(0, 0);   // de volta à tela
lcd.write(byte(0));
challenge icon

Desafio

Médio

O código inicial tem um desenho de carinha sorridente. Dê oi com ela:

  • armazene-a como caractere 0 com lcd.createChar()
  • mova o cursor para o canto superior esquerdo
  • imprima Hi (com um espaço) e, em seguida, desenhe a carinha sorridente

Pressione Run e, em seguida, Check.

Experimente você mesmo

#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);

  // armazene o rosto sorridente como caractere 0 e, em seguida, imprima "Hi " e o rosto sorridente
}

void loop() {
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Displays e sensores

Pratique por conta própria: Playground de Arduino