Criando Icones Com Display LCD 16x2
by Jon-Henrico in Circuits > Arduino
4132 Views, 1 Favorites, 0 Comments
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.
Verificar a Pinagem Do Display LCD
pinagem acima
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
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)); }
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 1 0 1 0,
1 0 1 0 1,
1 0 0 0 1,
0 1 0 1 0,
0 0 1 0 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.
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
Teste
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.