Aula 7: Como utilizar o display LCD 16×2?

Nessa aula você vai encontrar alguns testes básicos do display LCD 16×2 com Arduino, um display muito comum com controlador HD44780, que se adapta aos mais diversos projetos, podendo ser usado com vários modelos de placas e microcontroladores como Arduino, Raspberry Pi, PIC, etc.

Display LCD 16x2

Material Necessário

Como funciona o display LCD 16×2?

Esse display LCD tem 16 colunas e 2 linhas, com backlight (luz de fundo) azul e letras na cor branca. Para conexão, são 16 pinos, dos quais usamos 12 para uma conexão básica, já incluindo as conexões de alimentação (pinos 1 e 2), backlight (pinos 15 e 16) e contraste (pino 3).

Conexões display LCD 16x2

Circuito display LCD 16×2

Na conexão do display ao Arduino Uno vamos utilizar apenas 4 pinos de dados (pinos digitais 2, 3, 4 e 5), e 2 pinos de controle (pinos digitais 11 e 12).

Para o ajuste do contraste, usamos um potenciômetro de 10K ohm.

Circuito display LCD 16x2

Se preferir, você também pode utilizar um potenciômetro para regular a luz de fundo, nos pinos 15 e 16 do display. Outra opção é usar um resistor em um desses pinos.

Código display LCD 16×2

O controle desse display pode ser feito utilizando-se a biblioteca LiquidCrystal, já embutida na IDE do Arduino.

No início do programa (linha 8), definimos os pinos que serão utilizados pelo displays, nesse formato:

LiquidCrystal lcd(<pino RS>, <pino enable>, <pino D4>, <pino D5>, <pino D6>, <pino D7>)

No setup, inicializamos o display definindo o número de colunas e linhas com o comando lcd.begin(16,2).

//Programa: Display LCD 16x2
//Autor: FILIPEFLOP

//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>

//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  //Define o número de colunas e linhas do LCD
  lcd.begin(16, 2);
}

void loop()
{
  //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("FILIPEFLOP");
  lcd.setCursor(3, 1);
  lcd.print(" LCD 16x2");
  delay(5000);
   
  //Rolagem para a esquerda
  for (int posicao = 0; posicao < 3; posicao++)
  {
    lcd.scrollDisplayLeft();
    delay(300);
  }
   
  //Rolagem para a direita
  for (int posicao = 0; posicao < 6; posicao++)
  {
    lcd.scrollDisplayRight();
    delay(300);
  }
}
O programa acima posiciona o texto na posição desejada utilizando o comando lcd.setCursor(), e imprime a string na tela usando lcd.print(“Texto”). Depois de 5 segundos, são utilizados os comandos scrollDisplayLeft() e scrollDisplayRight() para “mover” os caracteres para a esquerda e para a direita, respectivamente.

Display LCD 16x2 com Arduino

Possíveis erros

Caso o projeto não funcione, verifique alguns dos possíveis erros:

  • Verifique se os jumpers estão na mesma coluna dos terminais dos componentes, fazendo assim a conexão;
  • Verifique se os jumpers estão ligados nos pinos corretos no Arduino;
  • Verifique se as conexões do display LCD estão corretas;
  • Verifique se os pinos do potenciômetro estão bem inseridos na protoboard;
  • Verifique se o código carregou na placa através da IDE Arduino.