GrabDuck

Display LCD 20x4 Arduino

:

Informações de data, hora, temperatura, pressão, umidade, coordenadas de um acelerômetro e ainda alertas para o usuário. Às vezes queremos (ou precisamos) exibir tantas informações em um display que os mais comuns, de 16x2, se tornam limitados.

Para esses casos, podemos adotar displays LCD 20x4, com pouquíssimas alterações no código do Arduino e assim ganhar espaço para exibir mais do que o dobro de informações.


Não há muito segredo para conectar um LCD 20x4. Fisicamente as conexões são iguais às outras encontradas em displays LCD 16x2. São 16 pinos para conexão, sendo que o pino mais à esquerda ( Vss), é o pino 1:

A ligação básica deste LCD ao Arduino utiliza somente 4 pinos de dados e 2 de controle, na seguinte ordem :

Seguindo a tabela, o nosso circuito de conexão do display ao Arduino Uno fica desse jeito. O potenciômetro de 10 K (ou outro valor de sua preferência) serve para ajustar o contraste do LCD. A intensidade da luz de fundo pode ser controlada adicionando um resistor ao pino 16 :

O LCD 20x4 também utiliza a biblioteca LiquidCrystal, bastando alterar os parâmetros de inicialização no comando lcd.begin, indicando que agora estamos utilizando um display com 20 colunas e 4 linhas :


lcd.begin(20,4);

Basicamente esta é a única alteração necessária. Depois disso, você pode utilizar o comando lcd.setCursor para posicionar os caracteres dentro das 20 colunas (numeradas de 0 a 19), e 4 linhas (numeradas de 0 a 3) :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Programa : Teste LCD 20x4 Arduino
// Autor : Arduino e Cia

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

// Inicializa o LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  // Define o LCD com 20 colunas e 4 linhas
  lcd.begin(20, 4);
  
  // Mostra informacoes no display
  lcd.setCursor(3,0);
  lcd.print("Arduino e Cia");
  lcd.setCursor(2,1);
  lcd.print("Display LCD 20x4");
  lcd.setCursor(1,3);
  lcd.print("arduinoecia.com.br");
}

void loop()
{
  // Seu codigo aqui
}

Com mais espaço no display você pode usar as informações do post LCD 16x2 + RTC + Numeros Grandes, para criar, por exemplo, um relógio com hora, data, e informações de temperatura, com um layout parecido com esse :