Montando e configurando display 16×2 no Arduino

Nesse post rápido vou mostrar o esquema eletrônico necessário para o funcionamento do display 16×2 no Arduino. Encontrei diversas postagens na internet demonstrando como montar esse circuito, porém encontrei um problema que se repete na maior parte deles.

Por não indicarem a necessidade do resistor 330R na porta 15 do display, na maioria das vezes o display liga mas não mostra as letras, quebrei muito a cabeça achando que fosse problema no código até encontrar a solução.

Assumo que você já tenha a placa Arduino e saiba o básico de C.

O que você precisa:

  • Display 16×2 (fácil de achar no ML)
  • Potênciometro 10k (minimo)
  • Resistor 330R

Abaixo a imagem do diagrama no feito no Fritz e mais detalhes do posicionamento dos cabos. Todos os cabos azuis são cabos ligados em portas digitais do Arduino (portas 12, 11, 2, 3, 4, 5).

O cabo amarelo vai conectado no pino central do potênciometro. Cabos pretos significam cabos ligados ao terra (GND) e cabos vermelhos estão ligados a força (5V).

O potênciometro serve para controlar a intensidade do brilho da luz de fundo. Abaixo fiz uma lista de onde vai cada fio, o display possui 16 portas, o número a esquerda da lista é referente a porta DO DISPLAY.

  • 1 (VSS) — GND
  • 2 (VDD) — 5v
  • 3 V0 — Pino central do potênciometro
  • 4 RS — Pino 12 do Arduino
  • 5 RW — GND
  • 6 E — Pino 11
  • 7, 8, 9, 10 D0 a D3 — NÃO CONECTADO
  • 11 D4 — Pino 5 do Arduino
  • 12 D5 — Pino 4 do Arduino
  • 13 D6 — Pino 3 do Arduino
  • 14 D7 — Pino 2 do Arduino
  • 15 A — 5v COM RESISTOR 330R
  • 16 K — GND

Mau contato também pode gerar esse problema das letras não aparecerem, certifique-se de que tudo está bem encaixado na protoboard. Abaixo, código para testar o funcionamento do display:

#include <LiquidCrystal.h>

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

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

void loop()
{
lcd.clear();

lcd.setCursor(0, 0);
lcd.print("Testando!");
lcd.setCursor(0, 1);
lcd.print("Linha 2 :)");
delay(1000);

//Rolagem para a direita
for (int posicao = 0; posicao < 16; posicao++)
{
lcd.scrollDisplayRight();
delay(250);
}

}

Leave a Reply

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