Display LCD 20×4 – 2004

Display LCD 20×4 – 2004

Este display é uma variação do display 16×2, este display possui o mesmo comportamento porém sua dimensão é maior.

Possuindo 20 colunas e 4 linhas ele consegue exibir simultaneamente 80 caracteres em sua tela, seu preço não é tão caro para o seu tamanho.

Posições das linhas e culunas utilizadas em um código.

As versões mais baratas são as com fundo verde e a azul semelhante ao display 16×4.

Modelo2004 ou 2004A
Resolução20 colunas por 4 linhas
Caractere: 5 colunas por 8 Linhas
40 pixel por caractere, 3200 pixel total
Controlador ICST7066, HD44780U, KS0066, SPLC780D,
KS0073 ou equivalente
Tensão de Alimentação3,3V ou 5V (depende do controlador)
3,3V (ST7066)
5V (HD44780 e KS0066)
Corrente de
Consumo Média
8mA + 20mA (LED)
Frequência de OperaçãoMáximo de 40MHz (ST7066)
Temperatura de Operação0°C até +50°C (ST7066
-20°C até +70°C (HD44780)
Dimensões98mm X 60mm X 14mm

Modelos de Modulo LCD conhecidos: RT204-1, 2004A, ERM2004-2, EA DIP204 e etc. Abaixo segue os datasheets de alguns modelos e tambem do controlador :

ícone

Display 20×4 – LCD Systronix 345.93 KB 128 downloads

Datasheet do display monocromático 20×4 modelo “20×4 LCD Systronix” com o controlador…
ícone

Display 20×4 – 2004A 1.17 MB 161 downloads

Datasheet do display monocromático 20×4 modelo “2004A” com o controlador SPLC780D…
ícone

Display 20×4 – LCD-020N004L – Datasheet 71.01 KB 43 downloads

Datasheet do display monocromático 20×4 modelo “LCD-020N004L” com o controlador…
ícone

Display 20×4 – ERM2004-2 Series – Datasheet 350.82 KB 30 downloads

Datasheet do display monocromático 20×4 Serie de modelos “ERM2004-2 Series” com…
ícone

Display 20×4 – EA DIP204 – Datasheet 300.87 KB 21 downloads

Datasheet do display monocromático 20×4 modelo “EA DIP204” com o controlador KS0073…
ícone

Display 20×4 – RT204-1 – Datasheet 1.04 MB 49 downloads

Datasheet do display monocromático 20×4 modelo “RT204-1” …
ícone

Controlador – HD44780U – Datasheet 322.07 KB 32 downloads

Controlador / Drive HD44780U de exposição de cristal líquido de matriz de ponto O…

Pinagem

Sua pinagem é exatamente a mesma do display 16×4 e obedece a mesma sequencia

Pinagem do LCD 2004A
PinoSimboloDescrição
1VSS ou GNDComum (Ground) (-)
2VDD ou VCCAlimentação (+) do Controlador
3VOAjuste de Contraste
4RSSeleção de Sinal de
Dados ou Instrução
5R/WSeleção de Sinal de
Leitura ou Escrita
6EHabilitação de Sinal
7~14DB0~DB7Entrada de dados
Modo de 8bits
15AAlimentação Positiva do LED +
16KAlimentação Negativa do LED –

Este display é compatível com o módulo I2C que utiliza o PCF8545A que tem a biblioteca liquidcrystal_i2c da IDE do Arduino pronta para o uso.

Caracteres

É possível criar novos caracteres além dos caracteres que já vem na memória interna do LCD, estes caracteres tem que ser desenhado através do código de programação.

O LCD 20×4 possui a mesma tabela de caracter que o 16×2

Para criar um novo caractere exitem sites onde é possível você desenhar seu caractere personalizado e obter o código facilmente como o maxpromer do Github que é um gerador de caractere e já lhe informa o código pronto para o arduino

Gerador de Caractere para display 16×2

O código é gerado em estilo matriz binária, onde cada 0 e 1 é uma coluna de cada linha escrita, para o desenho formado acima temos a matriz:

byte customChar[] = {
  B10100,
  B01000,
  B10100,
  B00000,
  B00110,
  B00101,
  B00110,
  B00100
};

o “customChar” pode ser personalizado para qualquer nome e você deve chamalo em seu código no void_loop(); ou void_setup(); através:

  lcd.createChar(0, customChar);
  lcd.write(0);

Assim como os outros displays o LCD 20×4 possui fonte integrada em sua memória facilitando o processamento do código, aumentando muito o desempenho do microcontrolador e do LCD.

Modo 4bits

O modo de 4bits utiliza poucos pinos do microcontrolador para executar as operações, porém tem o custo do desempenho ser menor do que o modo 8bits dependendo da tarefa em que irá ser empregada não é perceptível essa diferença.

Esquema de ligação modo 4bits (Créditos: www.filipeflop.com)

Este modo utiliza no total de 6 pinos do microcontrolador tanto se for Arduíno, ESP32 ou um PIC, se comparado com o ST7920, temos dois pinos sendo utilizados a mais.

O esquema está exibindo um display 16×2, porem é valido para o 20×4 pois possui o mesmo funcionamento e pinagem

#include <Arduino.h> 
#include <LiquidCrystal.h> 

// inicializar a biblioteca associando qualquer pino de interface LCD necessário
// com o número do pino arduino está ligado a
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // configurar o número de colunas e linhas do LCD:
  lcd.begin(20, 4);
  // Imprima uma mensagem no LCD.
  lcd.print("ola, mundo!");
}

void loop() {
  // coloque o cursor na coluna 0, linha 1
  // (nota: a linha 1 é a segunda linha, já que a contagem começa com 0):
  lcd.setCursor(0, 1);
  // imprime o número de segundos desde a redefinição:
  lcd.print(millis() / 1000);
}

Modo 8bits

Alem do modo 4bits temos o modo 8 bits esté modo só é util quando se precisa de uma resposta rápida no LCD, um exemplo é a exibição em tempo real de várias variáveis ao mesmo tempo

Comparação entre os modos 8bits e 4 bits (créditos: www.microcontroller-project.com)

Este modo é 2x mais veloz do que o modo 8bits devido a ter mais dados sendo recebidos simultaneamente, porém o custo e que necessita mais pinos do microcontrolador que chega a 10 pinos, este ponto negativo pode ser contornado pelo uso de multiplexadores (I2C)

Esquema de ligação modo 8bit (Créditos: www.electronicwings.com)

O esquema está exibindo um display 16×2, porem é valido para o 20×4 pois possui o mesmo funcionamento e pinagem

#include <LiquidCrystal.h>  
   
//Habilite a linha abaixo se for usar o display no modo 8 bits  
LiquidCrystal lcd(12, 11, 6, 7, 8, 9, 5, 4, 3, 2); //Modo 8 bits  
   
   
void setup() 
{  
  // configurar o número de colunas e linhas do LCD: 
  lcd.begin(20,4);  
}  
   
void loop() 
{  
  // defina o cursor para (0,0):
  lcd.setCursor(0, 0);  
  // imprimir de 0 a 9:
  for (int thisChar = 0; thisChar < 10; thisChar++) {  
   lcd.print(thisChar);  
   delay(500);  
  }  
   
  // defina o cursor para (16,1):
  lcd.setCursor(16,1);  
  // defina a exibição para rolar automaticamente:
  lcd.autoscroll();  
  // print from 0 to 9:  
  for (int thisChar = 0; thisChar < 10; thisChar++) {  
   lcd.print(thisChar);  
   delay(500);  
  }  
  // desativar a rolagem automática
  lcd.noAutoscroll();  
    
  // limpar a tela para o próximo loop:
  lcd.clear();  
}  

I²C

A multiplexação exige um conhecimento maior em programação ou então apelar para bibliotecas prontas para tornar a multiplexação mais fácil, um exemplo é o I2C do PCF8574A que é muito utilizado para diminuir para dois fios além de ser possível utilizar mais Displays nos mesmos pinos.

Esquema de ligação com o modulo I2C

O esquema está exibindo um display 16×2, porem é valido para o 20×4 pois possui o mesmo funcionamento e pinagem

#include <Arduino.h>  
#include <Wire.h>  
#include <LiquidCrystal_I2C.h>  

// Inicializa o display com o endereço 0x38
LiquidCrystal_I2C lcd(0x38,2,1,0,4,5,6,7,3, POSITIVE);
 
void setup()
{
 lcd.begin (20,4);
 lcd.setBacklight(HIGH);
}
 
void loop()
{
  lcd.setCursor(0,0);
  lcd.print("XProjetos.net");
  delay(1000);
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Ola, Mundo");
  lcd.setCursor(0,2);
  lcd.print("Terceira Linha");
  delay(1000);
  lcd.clear();
  lcd.setCursor(0,3);
  lcd.print("Quarta Linha");
}

Fontes:

Licença CC 4.0

Creative Commons

O trabalho “Display LCD 20×4 – 2004” de JailsonBR está licenciado com uma Licença Creative Commons Atribuição 4.0 Internacional.

Jailson Oliveira

Sou Engenheiro Eletricista com Enfase em Eletrônica e Técnico em Eletrônica, gosto de estar praticando montagens de circuitos e também programar sistemas embarcados. Acredito que compartilhar informações gratuita gera mais informações novas por parte de outras pessoas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *