Realizando efeito Scroll no display LCD

efeito-Scroll-no-display
Font Size

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:

Efeito Scroll em Display LCD

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.

Esquema de ligação no Arduino

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 Dúvidas?  Idéias de post? Críticas?  Só comentar também! 

Forte abraço!

Posts relacionados

Como expandir as Saídas do Arduino?

por Danilo Nogueira
5 anos ago

Aprenda a utilizar o Sensor de Distância Ultrassônico HC-SR04 com Arduino

por autocore
7 anos ago

Controlando o Arduino com Controle Remoto

por autocore
7 anos ago