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!