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

Tutorial Caixa Time

por autocore
7 anos ago

Conhecendo as diferenças entre os módulos Bluetooth HC e HM

por autocore
8 anos ago

Datalogger com Arduino e Sensor BMP280

por autocore
5 anos ago
Sair da versão mobile