Como utilizar o Display LCD 16×2 no Arduino? 8

Neste artigo você vai encontrar alguns testes básicos do display LCD 16×2 no 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.

Foto Display LCD 16x2
Display LCD 16×2

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
Conexôes do Display LCD 16×2

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
Esquemático do circuito com o Display LCD 16×2 usando Arduino

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: MakerHero

//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("MakerHero");
  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
Funcionamento do projeto

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.

E aí, gostou de aprender como conectar um Display LCD 16×2 no arduino? Para continuar a trilha de conhecimento de Arduino, confira a próxima aula: Mostrando a temperatura no LCD 16×2 com o sensor DHT11

Qualquer dúvida pode usar o campo de comentários abaixo. E não esqueça de nos seguir no Instagram 😉

Faça seu comentário

Acesse sua conta e participe

8 Comentários

  1. Só lembrando que o consumo desse display é elevado; para usá-lo junto com QUALQUER OUTRO HARDWARE será preciso ligar o LCD numa fonte separada, ou algo não vai funcionar: usei um desses com 5 leds que deveriam piscar aleatoriamente junto com o texto, eles não acendiam. E a pinagem e código eram os mesmos que já tinha usado com esses leds, só acrescentei a parte referente ao LCD.

    1. Olá.

      No geral os projetistas sempre utilizam usando a própria fonte da placa de desenvolvimento.

      Provavelmente você precisa acrescentar alguns resistores para limitar a corrente desses LEDs.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  2. Em qual software vc usa para fazer estes circuitos? Sempre uso o Tinkercad mas nesse não os componentes que preciso para simular.

    1. Olá,

      O software é o Fritzing.

      A simulação no fritzing ainda está em desenvolvimento e por enquanto não abrange programação.

      Abraços!
      Vinícius – Equipe MakerHero

  3. Eu posso ligar o display sem potenciometro?

    1. Olá Wanderson,

      O potenciômetro serve para o ajuste do contraste, você pode substituir por dois resistores de 10k por exemplo, ligados em série fazendo um divisor de tensão, como se fossem os 3 pinos do potenciômetro.

      Abraços!
      Vinícius – Equipe MakerHero

  4. ola!
    estava fazendo esse circuito e programação em um simulador e apontou que esta chegando 23,7kA e o lcd só suporta 20mA,seia algo na programação ou na ligação o erro ?

    1. Olá Jefferson,

      Acredito que seja alguma questão no simulador, fiz a montagem conforme o post e deu tudo certo.
      Também 23,7 kA é uma corrente muito alta. Qual simulador foi usado?

      Abraços!
      Vinícius – Equipe MakerHero