Usando efeitos com o LCD

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:

Arduino Uno

Cabo USB A para B

Protoboard 830

Display LCD 16x2

Potenciômetro 10kΩ

Alguns Jumpers

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();

}