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.
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 133 downloads
Datasheet do display monocromático 20×4 modelo “20×4 LCD Systronix” com o controlador…Display 20×4 – 2004A 1.17 MB 180 downloads
Datasheet do display monocromático 20×4 modelo “2004A” com o controlador SPLC780D…Display 20×4 – LCD-020N004L – Datasheet 71.01 KB 49 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 56 downloads
Datasheet do display monocromático 20×4 modelo “RT204-1” …Controlador – HD44780U – Datasheet 322.07 KB 36 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
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 – |
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.
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
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.
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
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)
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.
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"); }