Olá tudo bem? No post de hoje vamos estar realizando o efeito scroll no display de LCD. Tenho certeza que você já viu esse efeito, ele provoca o movimento de transição das letras no display. Quer saber então como realizar esse efeito no display LCD com Arduino? Então me acompanhe!
Realizando Scroll no Display LCD
O efeito que vamos reproduzir hoje com o nosso Arduino, é muito utilizado naquelas lojas de varejo de sua cidade. Onde eles utilizam placas de diversas cores para chamar a atenção do cliente. Ainda não conseguiu lembrar? Então observe a imagem abaixo:
Fonte: Arduino.cc
Mas para realizar esse efeito, vamos precisar possuir alguns conhecimentos básicos sobre displays de LCD. Assim, caso você ainda não tenha um conhecimento sólido sobre displays e sobre a biblioteca que utilizamos para controlá-los. Relaxa! Basta visitar o nosso post abaixo onde estamos explicamos todos esses detalhes pra você combinado?
Dessa forma, vamos partir agora para a montagem desse projeto e buscar entender toda a programação e funcionalidades das funções envolvidas dentro do código. Então amos nessa?
Componentes Utilizados
Efeito Scroll no display – Montagem do Circuito
A seguir está a ligação do nosso projeto de hoje. Mas, é importante que você desligue o cabo USB de seu Arduino e realize a ligação com ele desligado combinado? Depois é só ligar novamente.
Fonte: AutoCore Robótica
Código do Projeto Comentado
Com a IDE do Arduino aberta, realize o upload do código a seguir e depois clique em Upload para que o programa carregue em seu Arduino.
/*
Projeto: Scroll de Texto no Display LCD
Autor: Danilo Nogueira - AutoCore Robótica
Data: 22/09/2018
Código de Dominio Público
*/
#include <LiquidCrystal.h> // Incluindo a biblioteca do LCD
// Aqui estamos definindo os pinos de ligação do LCD
//seguindo a forma: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
lcd.begin(16,2); // Iniciando o display LCD passando nos parâmetros o seu tamanho: 16 colunas x 2 linhas
lcd.clear(); // Limpa o LCD
lcd.setCursor(0,0); // Vai setar, ou seja, iniciar o cursor na posição 0,0
lcd.print(" Arduino, Tutoriais e muito mais!"); // Na posição indicada (0,0), escreve o texto dentro das "aspas"
lcd.setCursor(0,1); // Vai setar, ou seja, iniciar o cursor na posição 0,1
lcd.print(" ------ AutoCore Robotica ------ "); // Na posição indicada (0,0), escreve o texto dentro das "aspas"
}
void loop()
{
// Aqui vamos movimentar todo o display X posições para a ESQUERDA.
for(int posi_LCD = 0; posi_LCD < 36; posi_LCD ++)
{
lcd.setCursor(16,1);
lcd.scrollDisplayLeft(); //Essa é a função que faz as letras se deslocarem
delay(250); // Quanto menor o tempo, mais rápido será o deslocamento
}
// Aqui a ideia de deslocamento é a mesma, contudo
// o deslocamento será para a DIREITA.
for(int posi_LCD = 0; posi_LCD < 52; posi_LCD ++)
{
lcd.setCursor(16,1);
lcd.scrollDisplayRight();
delay(250);
}
}
Analisando a fundo o Código
O código de nosso projeto de hoje é muito simples e pequeno, ele apenas vai se basear em duas partes centrais. Primeiro temos a parte de iniciar o display com a mensagem que queremos transmitir:
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Arduino, Tutoriais e muito mais!");
Nessa parte do código, estamos iniciando o nosso display LCD e passando como parâmetro para a função lcd.begin, o tamanho do display (16×2).
Mas agora, precisamos fazer com que a mensagem escrita no display se desloque para a esquerda ou direita, mas como fazer isso?
lcd.scrollDisplay
Para conseguir realizar esse efeito, tem um comando chamado lcd.scrollDisplay(lado). Observe essa parte do código e você vai entender:
for(int posi_LCD = 0; posi_LCD < 36; posi_LCD ++)
{
lcd.setCursor(16,1);
lcd.scrollDisplayLeft();
delay(250);
}
Essa parte do código está fazendo esse efeito de scroll em nosso display. Basicamente, utilizamos um for para não deixar os caracteres andando infinitamente para a esquerda e iniciamos as letras na última coluna do display através do comando:
lcd.setCursor(16,1);
Em seguida, temos o comando já mencionado o qual realiza a transição do conteúdo no display. Ele foi escrito da seguinte forma:
lcd.scrollDisplayLeft();
Ou seja, esse comando vai provocar um scroll no display para o lado esquerdo. Mas isso vai acontecer, enquanto o comando for estiver rodando. Logo depois, é colocado um tempo de deslocamento para esses caracteres para poder observar o efeito de deslocamento.
Por fim, temos um outro comando for no código, mas que a função é a mesma do primeiro comando for, e nele o display será deslocado para a direita.
Assim, no projeto final vai acabar resultando no efeito de “vai e vem” do texto no display como você pode visualizar no vídeo abaixo!
Resultado do Projeto
Para terminar, segue o vídeo do nosso canal do Youtube onde mostra o código do nosso projeto de hoje em funcionamento!
Mas e ai? Gostou? Caso tenha ficado algo incompleto para você, comenta abaixo
Dicas?
Forte abraço!
