Introduction: Criando Icones Com Display LCD 16x2
O projeto tem o objetivo de ensinar de maneira simples como criar um ícone no display LCD com arduino UNO.
Supplies
- Arduino UNO
- Resistor de 220ohms
- Jumper Macho-Macho
- Potenciômetro 10K.
- Protoboard
- Display 16x2 com barra de pino.
Step 1: Verificar a Pinagem Do Display LCD
pinagem acima
Step 2: Ligações Display Com Arduino
Siga a tabela de conexões, para ligar seu display LCD na configuração de 4bits ou siga o esquema acima.
Link de acesso:
PROJETO_TINKERCAD // link do projeto
Step 3: Código Arduino
/* Sketch de exemplo para criar e exibir caracteres personalizados no LCD, utilizando a biblioteca LiquidCrystal.*/
#include <LiquidCrystal.h>
LiquidCrystal lcd = LiquidCrystal(12, 11, 5, 4, 3, 2);
// Campo de caracteres personalizados:
byte Heart[8] = {
B00000,
B01010,
B10101,
B10001,
B01010,
B00100,
B00000,
B00000
};
byte Bell[8] = {
B00100,
B01010,
B01010,
B01010,
B11111,
B00000,
B00100,
B00000
};
byte Sorriso[8] = {
B00000,
B00000,
B01010,
B01010,
B00000,
B10001,
B01110,
B00000
};
byte Check[8] = {
B00000,
B00001,
B00011,
B10110,
B11100,
B01000,
B00000,
B00000
};
byte Speaker[8] = {
B00001,
B00011,
B01101,
B01001,
B01001,
B00101,
B00011,
B00001
};
byte Sound[8] = {
B00001,
B00011,
B00101,
B01001,
B01001,
B01011,
B11011,
B11000
};
byte Skull[8] = {
B00000,
B01110,
B10101,
B11011,
B01110,
B01010,
B00000,
B00000
};
byte cadeado[8] = {
B01110,
B10001,
B10000,
B11111,
B11011,
B11011,
B11111,
B00000
};
byte LUA[8] = {
B00111,
B01110,
B11100,
B11100,
B11100,
B11100,
B01110,
B00111
};
void setup() {
// Especifique o número de colunas e linhas do LCD:
lcd.begin(16, 2);
// Crie um novo personagem:
lcd.createChar(0, Heart);
lcd.createChar(1, Bell);
lcd.createChar(2, Sorriso);
lcd.createChar(3, Check);
lcd.createChar(4, LUA);
lcd.createChar(5, Sound);
lcd.createChar(6, Skull);
lcd.createChar(7, cadeado);
// Limpa a tela LCD:
lcd.clear();
delay(100);
// Imprima uma mensagem para o lcd:
lcd.print("Olá Mundo");
}
void loop() {
// Imprime todos os caracteres personalizados:
lcd.setCursor(0, 1);
lcd.write(byte(0));// Seleciona o caracter especial almejado
lcd.setCursor(2, 1);
lcd.write(byte(1));
lcd.setCursor(4, 1);
lcd.write(byte(2));
lcd.setCursor(6, 1);
lcd.write(byte(3));
lcd.setCursor(8, 1);
lcd.write(byte(4));
lcd.setCursor(10, 1);
lcd.write(byte(5));
lcd.setCursor(12, 1);
lcd.write(byte(6));
lcd.setCursor(14, 1);
lcd.write(byte(7));
}
Step 4: Aprendendo a Desenhar No Display.
Para desenhar caracteres especiais, você pode acessar esse site:
Mas, podemos desenhar sem o auxilio de um site, para isso, observe esse trecho de código:
byte Heart[8] = {
B00000,
B01010,
B10101,
B10001,
B01010,
B00100,
B00000,
B00000
};
Perceba que estamos trabalhando com o sistema binário 0 e 1. Sabendo disso, podemos dividir, um segmento do display em 5 colunas por 8 linhas ou 5x8 pixels.
Contudo, o 1 atua como "sombra", não permitindo que a luz ultrapasse aquele ponto e o 0, ponto o qual a luz passa pelo meio.
Então, separando o desenho do coração em partes:
0 0 0 0 0,
0 10 10,
10 10 1,
10 0 0 1,
0 10 10,
0 0 10 0,
0 0 0 0 0,
0 0 0 0 0
Podemos notar que os 1, formam uma figura.
OBS: Temos um limite de 16 caracteres.
Step 5: Comandos Da Biblioteca LiquidCrystal Utilizados
OBS: A biblioteca já está incluída na Arduino IDE.
- lcd.write(byte(1));
Escreve um caractere no display, no caso o caractere especial.
- lcd.setCursor(4, 1);
Posiciona o cursor na linha e coluna indicada no comando
- lcd.createChar(7, cadeado);
Cria um caractere personalizado para uso no LCD. Até oito caracteres de 5×8 pixels são suportadas.
- lcd.clear();
Limpa o display e posiciona o cursor no canto superior esquerdo, na posição 0.
- lcd.print("Olá Mundo");
Escreve um dado qualquer no display (texto ou número)
- lcd.begin(16, 2);
Configura o modelo do display, nesse caso o display LCD 16×2.
- LiquidCrystal lcd = LiquidCrystal(12, 11, 5, 4, 3, 2);
Indica como os pinos do display estão interligados na placa Arduino
Step 6: Teste
Step 7: Perguntas Mais Frequentes
1- Tem limite de ícones?
Sim, 16 ícones.
2- Posso mudar os pinos do Arduino?
sim, não é aconselhado utilizar os pinos 1 e 0;
3-O display de 16x4 ou 20x2 altera algo?
Não, mantém o mesmo padrão.
4- No display modelo plano de fundo azul, é aconselhado utilizar um delay de 100ms após o comando "lcd.clear".
5- Além da configuração de 4bits, há outra?
Sim, além da configuração de 4bits, há também a de 8bits, a qual “Teoricamente”, possibilita uma taxa de atualização mais eficiente do display, porém você acaba utilizando mais portas I / O do arduino.

