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));Desafio
MédioO 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() {
}
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
2LCD de caracteres
Olá no LCDPosicione o texto com setCursorNúmeros em tempo real no LCDLimpe os dígitos restantesDesenhe caracteres personalizadosTexto em rolagemPratique por conta própria: Playground de Arduino