0

Neste artigo iremos abordar uma das formas que temos de exibir as informações do Arduino. Estamos falando do display LCD, que vem da sigla em inglês (Liquid Crystal Display), amplamente utilizado nos mais diversos projetos de eletrônica e produtos de maneira geral. 

Vamos abordar uma maneira fácil e prática de você implementar o display LCD em seus projetos trazendo a montagem eletrônica e o código em linguagem C++ de forma que você entenda e o utilize da melhor forma.

Ao final desta experiência temos como bônus a implementação do jogo, estilo aquele de corrida clássica dos antigos mini games, só que iremos utilizar o Arduino, o display LCD e também um botão.

O que é o Display LCD?

Entrando na parte teórica do nosso componente em questão, os displays alpha numéricos são dispositivos opto eletrônicos utilizados para exibir informações de texto e figuras.

Os modelos existentes no mercado são classificados através do número de linhas e colunas (caracteres) que se pode escrever nele e também pela cor da tela e letras.

Os pontos positivos deste item é o baixo consumo de energia, visto que seu brilho pode ser controlado, a baixa emissão de calor, ser compacto e relativamente de baixo custo e de fácil utilização.

Display LCD 16x2 Arduino

As letras e números são formados por uma pequena matriz de pixels 5×8, onde o Arduino define se os pixels estão ligados ou desligados. A partir desse controle, é possível realizar o desenho de vários caracteres e figuras.

Veja a seguir uma tabela com os caracteres existentes produzidos.

Tabela com diversos símbolos que podem ser usados no display com o Arduino


Estes pixels são gerenciados por um controlador interno, normalmente baseado no Hitachi HD44780 ou no Samsung KS0066U, que se comunicam com o Arduino através de uma interface simples: um barramento de dados (de 4 ou 8 bits) e 3 linhas de controle (RS, R/W e EN).

No modo nibble, apenas as quatro linhas mais significativas de dados (D4 a D7) são utilizadas na comunicação.

O byte é dividido em dois nibbles que são transferidos a começar pelo mais significativo, seguido pelo menos significativo.

Especificações técnicas do Display LCD Arduino

ItemSímboloValorUnidade
Tensão de alimentaçãoVDD5V
CorrenteIDD1.2mA
Temperatura de operaçãoTOP-20 à 70°C
Temperatura de armazenagemTSTR-30 à 80°C

Montagem do circuito com o Display e o Arduino

Lista de materiais

  • Arduino Uno
  • Display LCD 16×2
  • Potenciômetro 10KΩ
  • Cabos macho-fêmea e macho-macho
  • Protoboard

Pinos do Display LCD 16×2

Os pinos do display que serão utilizados seguem ilustrados na figura. Para este exemplo usaremos o modo nibble que utiliza apenas os 4 pinos do display (D4 ao D7) para transmitir a informação.  

Display LCD pinout

Montagem do Display LCD 16×2 com o Arduino

A ligação do display com o Arduino de forma bem simples, segue descrita pela imagem abaixo.

DISPLAYARDUINO
VSSGND
VDD5V
VOPOTENCIÔMETRO
RSD12
RWGND
END11
D4D4
D5D5
D6D6
D7D7
A5V
KGND
Montagem do circuito do Display LCD com Arduino e potenciometro

Note que o uso do potenciômetro servirá para controlar a intensidade da luz do display LCD.

Circuito do display LCD com Arduino

Você também pode se interessar:

Código Utilizado

Bibliotecas utilizadas e dicas

Para elaborar este exemplo, recorremos à biblioteca presente na IDE do Arduino chamada Liquid Crystal, onde pode se encontrar mais informações da biblioteca seguindo os próximos passos descritos.

Biblioteca do Display LCD 16x2 na IDE do Arduino

Procurando por Liquid Crystal no gerenciador de bibliotecas é possível verificar se a biblioteca está instalada ou se precisa instalar e também você pode ver uma uma descrição sobre a biblioteca e mais informações.

Imagem da biblioteca liquidcrystal do display 16x2

Seguindo este link é possível obter diversos exemplos diretamente no site do Arduino.

Código em C++ explicado:

Este primeiro exemplo traz de forma simplificada, o uso que pode ser aplicado de forma geral em demais projetos do display LCD 16×2.

Neste exemplo o Arduino controla a leitura no Display LCD e faz uma contagem de 0 a 10 segundos.  

/*
 
  Como ligar e controlar um display LCD 16x2 usando Arduino UNO
  Mais projetos como esse, acesse: <http://flaviobabos.com.br>
  
*/

// Inclui a biblioteca Liquid Crystal ao código:
#include <LiquidCrystal.h>

// Define algumas nomenclaturas aos pinos digitais do arduino
#define RS 12
#define EN 11
#define D4  4
#define D5  5
#define D6  6
#define D7  7

// Inicializa a biblioteca associando os pinos definidos ao display LCD
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);

void setup() {
  // Define o tipo do LCD que sera utilizado, neste caso 16x2
  lcd.begin(16, 2);
}

void loop() {
  // Inicializa uma variável de contagem
  int contagem = 0;
  
  // Limpa todos os caracteres do display LCD
  lcd.clear();
  
  lcd.setCursor(6, 0); // Posiciona a localização do ponteiro na sexta coluna, primeira linha no display
  
  // Apresenta a palavra PORTAL no display na primeira linha.
  lcd.print("PORTAL");
    
  lcd.setCursor(2, 1); // Posiciona a localização do ponteiro na segunda linha, segunda linha no display
  
  // Apresenta a palavra FLAVIO BABOS no display na segunda linha.
  lcd.print("FLAVIO BABOS");
  
  // Espera por 5 segundos 
  delay(5000);

  lcd.clear();
  lcd.setCursor(0, 0);
  
  // Apresenta a palavra CONTAGEM ATE 10 no display na primeira linha.  
  lcd.print("CONTAGEM ATE 10");
  
  //Este laço for faz com que o display exiba a contagem de 0 a 10 a cada segundo  
  for(contagem = 0; contagem < 11; contagem++)
  {   
    lcd.setCursor(7, 1);
    
     // Printe uma mensagem ao LCD
     lcd.print(contagem);
     delay(1000);
  }
}

FUNCIONAMENTO

Após dar upload do seu código diretamente para o Arduino você terá algo parecido com o vídeo abaixo:

Projeto Bônus

Explicação do projeto bônus

Como projeto bônus, vamos te desafiar a utilizar este mesmo projeto anterior, com a adição de um botão a fim de criar um game, estilo aquele de corrida que tinha em mini games, com um personagem que precisa desviar dos obstáculos que aparecem na tela do display LCD, onde vamos somando uma pontuação quanto maior for o tempo de sobrevivência no game.

O personagem morre quando o obstáculo o atinge.

Lista de materiais

  • Arduino Uno
  • Display LCD 16×2
  • Potenciômetro 10KΩ
  • Cabos macho-fêmea e macho-macho
  • Protoboard
  • Botão

Montagem do circuito

Circuito do projeto bônus game

FUNCIONAMENTO

No site do Hackster.io você vai encontrar o código fonte deste game, porém, aquele autor utilizou outra configuração dos pinos de acordo com o que ele imaginou.

Sendo assim, tente adaptar este projeto para a forma com a qual nós o instruímos neste artigo que, de forma geral, é um tutorial bem simples.

Considerações finais

Como abordado inicialmente, diversos projetos utilizam o display LCD 16×2 como forma de exibir informações. Dominar o uso deste componente abre as portas para você também utilizar outros modelos de displays maiores desta mesma família, ampliando o horizonte de possibilidades que você pode aplicar.

Caso queira se desafiar com outro projeto usando o LCD no artigo sobre RFID Arduino há um projeto bônus que você pode fazer o controle de acesso através de dois tipos de token diferentes.

Esperamos ter reunido as informações necessárias para que você inicie esta jornada de exploração e facilite sua vida nestes primeiros passos.

Com os dados contidos nesse artigo, agora você é capaz de utilizar o display para exibir qualquer tipo de informação existente em seu projeto. Para se aprofundar na eletrônica e na programação em C/C++ acesse o artigo sobre os melhores cursos de Arduino.

Agradecemos sua leitura até aqui. Bons estudos e bom desenvolvimento!

Flávio Babos
Estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU), Flávio passa seu tempo empreendendo e estudando sobre eletrônica e tecnologia no geral. Já desenvolveu diversos projetos com Arduino e recentemente atuou na Empresa Júnior do seu curso gerenciando equipes de engenharia no setor de vendas e de projetos.

Diodo: Função, Aplicação e 10 Tipos Principais (Guia Completo)

Previous article

Curso a Distância de Refrigeração Residencial e Comercial [2021]

Next article

You may also like

Comments

Leave a reply

Your email address will not be published. Required fields are marked *

More in Arduino