Criando Icones Com Display LCD 16x2

by Jon-Henrico in Circuits > Arduino

4132 Views, 1 Favorites, 0 Comments

Criando Icones Com Display LCD 16x2

IMG_0548.JPG

O projeto tem o objetivo de ensinar de maneira simples como criar um ícone no display LCD com arduino UNO.

Supplies

IMG_0558.JPG
  • Arduino UNO
  • Resistor de 220ohms
  • Jumper Macho-Macho
  • Potenciômetro 10K.
  • Protoboard
  • Display 16x2 com barra de pino.

Verificar a Pinagem Do Display LCD

vcc.png

pinagem acima

Ligações Display Com Arduino

vcc (1).png

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.

11.png

Para desenhar caracteres especiais, você pode acessar esse site:

DISPLAY


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

12.png

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.