Usando um display LCD 16x2, um Arduino e a biblioteca LiquidCrystal você poderá criar caracteres personalizados além de fazer efeitos como Blink, deslocamento de texto, tanto para a direita como para esquerda.
Dificuldade:
Montagem:
Programação:
Material Utilizado:
A Montagem
OBS: Não esqueça de regular o contraste do LCD com o potenciômetro
O Sketch
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD
//Configura os pinos do Arduino para se comunicar com o LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int i;
//Cria caracter L personalizado
byte LL[8] = {
B11000,
B11000,
B11000,
B11000,
B11111,
B11111,
B11111,
};
//Cria caracter d personalizado
byte dd[8] = {
B00011,
B00011,
B01111,
B11011,
B11011,
B11111,
B01111,
};
//Cria caracter G personalizado
byte GG[8] = {
B01110,
B11011,
B11000,
B11011,
B11001,
B11111,
B01110,
};
void setup()
{
//Cria os caractéres especiais na memória do LCD
lcd.createChar(0, LL);
lcd.createChar(1, dd);
lcd.createChar(2, GG);
//Inicia a comunicação e indica o tamanho do LCD 16x2(Colunas x Linhas)
lcd.begin(16, 2);
}
void loop()
{
//Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.setCursor(16, 0);
lcd.print(" Ola Garagista! "); //Escreve no LCD "Ola Garagista!"
lcd.setCursor(16, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(" Lab de Garagem "); //Escreve no LCD "LabdeGaragem"
delay(1000);
//Faz o efeito de deslocamento para esquerda
for (i =0; i <16; i++){
lcd.scrollDisplayLeft();
delay(20);
}
delay(1000); //Aguarda 1 segundo
//Blink
delay(400);
lcd.noDisplay();
delay(400);
lcd.display();
delay(400);
lcd.noDisplay();
delay(400);
lcd.display();
delay(400);
lcd.display();
delay(400);
//Deslocamento para esquerda
for (i =0; i <16; i++){
lcd.scrollDisplayLeft();
delay(20);
}
lcd.clear();
//Escrevendo caracteres especiais
lcd.setCursor(16,0);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.write(byte(2));
delay(1000);
//Deslocamento para esquerda
for (i =0; i <10; i++){
lcd.scrollDisplayLeft();
delay(20); //Aguarda 1 segundo
}
delay(1000); //Aguarda 1 segundo
//Blink
delay(400);
lcd.noDisplay();
delay(400);
lcd.display();
delay(400);
lcd.noDisplay();
delay(400);
lcd.display();
delay(400);
lcd.display();
delay(400);
//deslocamento para Direita
for (i =0; i <10; i++){
lcd.scrollDisplayRight();
delay(20); //Aguarda 1 segundo
}
delay(1000); //Aguarda 1 segundo
lcd.clear();
}