Como ligar um display LCD no Arduino Uno

Eletrônica Arduino 16 de Novembro de 2019 às 13:46

O principal projeto para inciantes na plataforma Arduino é acender e apagar um LED, contudo conforme o progresso do aprendizado é importante enriquecer o projeto com novas funcionalidades. Em certas ocasiões é essencial mostrar as informações coletadas em um display, podendo ser de 7 segmentos, OLED ou LCD comum de 16x2. Para este tutorial foi utilizado um display LCD de 16x2 com o fundo azul sem utilizar um módulo de comunicação I2C, mas se preferir leia o nosso tutorial Como ligar um display LCD 16x2 I2C no Arduino Uno.

Materiais

Anote os materiais e componentes necessários abaixo para montar este projeto. Para prototipagem você pode utilizar um Arduino Uno, Nano ou Mega, ou montar o seu Arduino Standalone.

  • 1 Arduino Uno Rev 3 com cabo USB
  • 1 Display LCD de fundo azul 16x2
  • 1 Resistor de 1 Kohms
  • 2 Resistores de 220 ohms
  • Cabos jumper Macho - Macho
  • 1 Protoboard de 830 furos
  • 1 Potenciômetro de 25 k (Opcional)

Como montar

Com estes materiais em mãos podemos iniciar a montagem do display LCD no protoboard, encaixe ele deixando um espaço para os cabos jumpers serem ligados.

Cuidado: Observe a numeração da pinagem marcado em seu display, pois ela pode estar em posições diferentes comparando com a imagem abaixo. Por exemplo, o display utilizado para este tutorial contém os pinos 15 e 16 ao lado do pino 1, por este motivo recomendamos que leia atentamente as características de cada pino.

O pino 1 (VSS) é ligado ao GND e o pino 2 (VDD) é ligado ao 5V. Utilize o GND e 5V do Arduino Uno.

O pino 3 (V0) é responsável pelo ajuste do contraste do display, para isso coloque o resistor de 1K, que será ajustado na medida certa para não saturar ou apagar as letras e números do display.

O pino 4 (RS) é responsável pelo registrador de seleção do sinal, é ligado no pino 12 do Arduino Uno.

O pino 5 (R/W) representa o sinal de escrita e leitura do display, é ligado ao GND.

O pino 6 (E) habilita ou desabilita o sinal, é ligado no pino 13 do Arduino Uno.

Os 8 pinos representados por DB são responsáveis pelo barramento Data Bus, que transportam dados de entrada e saída (I/O) do display em 8 bits.

Os pinos de 7 ao 10 não são utilizados, pois o Data Bus será setado como 4 bits.

O pino 11 (DB4) é ligado no pino 7 do Arduino Uno.

O pino 12 (DB5) é ligado ao pino 6 do Arduino Uno.

O pino 13 (DB6) é ligado ao pino 5 do Arduino Uno.

O pino 14 (DB7) é ligado ao pino 4 do Arduino Uno.

Os pinos 15 (LED+) e 16 (LED-) são responsáveis por fornecer energia aos LEDs que ficam ao fundo do display para você enxergar o que está escrito nele. O pino 16 é ligado ao GND e existem três maneiras de realizar a ligação do pino 15, faça o que você achar mais adequado ao seu display.

  1. Utilize os 2 resistores de 220 ohms em paralelo, fornecendo um total de 110R ao pino 15.
  2. Ligue o pino 15 ao 5V, retire o resistor de 1K e coloque um potenciômetro de 25k conectado ao 5V, GND e no pino 3 do display. O potenciômetro que também é um resistor, porém variável, ele controla os valores dos LEDs e do contraste.
  3. Simplesmente ligue o pino 15 ao 5V sem potenciômetro de ajuste.

Programando o Arduino

Com o display conectado corretamente ao Arduino, agora é possível escrever qualquer palavra no display, ele aceita números e letras em minusculo e maiúsculo, porém a biblioteca não reconhece a acentuação da nossa linguagem.

Para programar o Arduino siga com atenção os passos necessários para realizar esta tarefa:

  • Conecte o seu Arduino Uno no computador.
  • Abra a IDE oficial do Arduino, versão utilizada 1.8.3.
  • Na aba <Ferramentas - Placa:"Arduino/Genuino Uno" - Porta (Sua Porta)">
  • Clique no ícone "Novo" para abrir um novo Sketch

A biblioteca utilizada neste projeto foi a LiquidCrystal, para incluir ao seu Sketch basta acessar o menu de abas <Sketch - Incluir Biblioteca - LiquidCrystal>, fazendo este processo ela implementará em seu projeto atual.

Logo em seguida cole este código para controlar o seu display e salve o arquivo .ino:

/*
 * Firmware para controlar um display LCD 16x2 by tecdicas
 * Biblioteca/Library : LiquidCrystal
 * 27/10/2017
 */
#include <LiquidCrystal.h> // Adiciona a biblioteca "LiquidCrystal" ao projeto

LiquidCrystal lcd(12, 13, 7, 6, 5, 4); // Pinagem do LCD

void setup()
{
  lcd.begin(16, 2); // Inicia o lcd de 16x2
}

void loop()
{
  lcd.clear();              // Limpa o display
  lcd.setCursor(2, 0);      // 2 = 2 colunas para a direita. 0 = Primeira linha
  lcd.print("Display LCD"); // Imprime um texto
  lcd.setCursor(2, 1);      // 2 = 2 colunas para a direita. 1 = Segunda linha
  lcd.print("* tecdicas.com *"); 
  delay(5000);              // 5 segundos de delay
  
  lcd.clear(); 
  lcd.setCursor(3, 0);
  lcd.print("Ola Mundo!");  
  delay(5000);
}

Compile e envie este código para seu Arduino e veja o resultado no display!

Arduino Uno com display LCD 16x2