Display LCD 20×4 – 2004
![Display LCD 20×4 – 2004](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/CAPA_LCD2004.jpg?fit=1280%2C720&ssl=1)
Este display é uma variação do display 16×2, este display possui o mesmo comportamento porém sua dimensão é maior.
Visão Superior Visão Inferior
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.
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/LCD-20x4-Posicoes.png?resize=503%2C360)
As versões mais baratas são as com fundo verde e a azul semelhante ao display 16×4.
Modelo | 2004 ou 2004A |
Resolução | 20 colunas por 4 linhas Caractere: 5 colunas por 8 Linhas 40 pixel por caractere, 3200 pixel total |
Controlador IC | ST7066, HD44780U, KS0066, SPLC780D, KS0073 ou equivalente |
Tensão de Alimentação | 3,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ção | Máximo de 40MHz (ST7066) |
Temperatura de Operação | 0°C até +50°C (ST7066 -20°C até +70°C (HD44780) |
Dimensões | 98mm 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 :
Display 20×4 – LCD Systronix 345.93 KB 132 downloads
Datasheet do display monocromático 20×4 modelo “20×4 LCD Systronix” com o controlador…Display 20×4 – 2004A 1.17 MB 170 downloads
Datasheet do display monocromático 20×4 modelo “2004A” com o controlador SPLC780D…Display 20×4 – LCD-020N004L – Datasheet 71.01 KB 45 downloads
Datasheet do display monocromático 20×4 modelo “LCD-020N004L” com o controlador…Display 20×4 – ERM2004-2 Series – Datasheet 350.82 KB 31 downloads
Datasheet do display monocromático 20×4 Serie de modelos “ERM2004-2 Series” com…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…Display 20×4 – RT204-1 – Datasheet 1.04 MB 53 downloads
Datasheet do display monocromático 20×4 modelo “RT204-1” …Controlador – HD44780U – Datasheet 322.07 KB 34 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
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/20x04-LCD_Pinout.jpg?resize=488%2C547)
Pino | Simbolo | Descrição |
---|---|---|
1 | VSS ou GND | Comum (Ground) (-) |
2 | VDD ou VCC | Alimentação (+) do Controlador |
3 | VO | Ajuste de Contraste |
4 | RS | Seleção de Sinal de Dados ou Instrução |
5 | R/W | Seleção de Sinal de Leitura ou Escrita |
6 | E | Habilitação de Sinal |
7~14 | DB0~DB7 | Entrada de dados Modo de 8bits |
15 | A | Alimentação Positiva do LED + |
16 | K | Alimentação Negativa do LED – |
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/04/lcd-16x2-pinout.jpg?resize=442%2C95)
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.
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/16x02-LCD_-Tabela.jpg?resize=640%2C792)
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
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/16x2_gerador_de_caractere.jpg?resize=640%2C592)
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.
![](https://i1.wp.com/xprojetos.net/wp-content/uploads/2019/05/LCD-1602-Modo-4bits.png?fit=640%2C274)
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
![](https://i0.wp.com/www.microcontroller-project.com/uploads/2/2/1/5/22159166/16x2-lcd-4-bit-and-8-bit-mode_orig.gif?w=640&ssl=1)
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)
![](https://i1.wp.com/xprojetos.net/wp-content/uploads/2019/05/LCD_1602_modo-8bit.png?fit=640%2C518)
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.
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/LCD_1602_modo-i2c.jpg?fit=640%2C305)
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"); }