Ir para o conteúdo principal

Referência do wokwi-lcd1602

Um LCD com 2 linhas, 16 caracteres por linha.

Nome dos Pinos

O LCD1602 vem em 2 configurações possíveis: configuração I2C e configuração padrão. A configuração I2C geralmente é mais simples de usar.

A tabela a seguir resume as principais diferenças:

PropriedadePadrãoI2C
Número de pinos de I/O do Arduino7*2 (SCL)/SDA
Controle de luz de fundoOpcionalSim
Nome da bibliotecaLiquidCrystalLiquidCrystal_I2C

* Controlar a luz de fundo requer outro pino de I/O.

Você pode selecionar a configuração desejada definindo o atributo pins. Defina-o como "i2c" para a configuração I2C ou como "full" para a configuração padrão (o padrão).

Configuração I2C

NomeDescrição
GNDTerra
VCCTensão de alimentação
SDALinha de dados I2C
SCLLinha de clock I2C

O endereço I2C padrão do módulo LCD1602 é 0x27. Você pode alterar o endereço definindo o atributo i2cAddress.

Nota: A configuração I2C simula um chip PCF8574T que controla o módulo LCD. Normalmente, você não teria que se preocupar com isso, pois a biblioteca LiquidCrystal_I2C cuida da comunicação com o chip.

Configuração padrão

NomeDescriçãoPino Arduino*
VSSTerraGND.1
VDDTensão de alimentação5V
V0Ajuste de contraste (não simulado)
RSSeleção de comando/dados12
RWLeitura/Escrita. Conectar ao terraGND.1
EEnable11
D0Dados paralelos 0 (opcional) †
D1Dados paralelos 1 (opcional) †
D2Dados paralelos 2 (opcional) †
D3Dados paralelos 3 (opcional) †
D4Dados paralelos 410
D5Dados paralelos 59
D6Dados paralelos 68
D7Dados paralelos 77
ALuz de fundo ânodo5V / 6‡
KLuz de fundo cátodoGND.1

* Estes são apenas exemplos de número de pinos, eles não são obrigatórios. Você pode usar qualquer pino digital/analógico, mas certifique-se de atualizar o código de acordo! † Normalmente, você configuraria o chip no modo paralelo de 4 bits, o que significa que você só precisa conectar os pinos RS, E, D4, D5, D6 e D7 ao Arduino. ‡ Se você precisar controlar a luz de fundo, conecte o ânodo a um pino de E/S. Caso contrário, conecte-o à tensão de alimentação. Para um circuito real, você também precisa de um resistor limitador de corrente, mas você pode ignorá-lo no ambiente de simulação.

Exemplo de código Arduino

Ao inicializar a biblioteca LiquidCrystal em seu código, você precisa passar os números dos pinos para o construtor.

O exemplo a seguir usa números de pinos que correspondem à tabela acima:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

void setup() {
lcd.begin(16, 2);
// Agora você pode interagir com o LCD, por exemplo:
lcd.print("Ola Mundo!");
}

void loop() {
// ...
}

Você também pode tentar este exemplo no Wokwi.

Atributos

NomeDescriçãoValor padrão
pinsDefina como "i2c" para a configuração I2C"full"
i2cAddressEndereço I2C (configuração I2C)"0x27"
colorA cor do texto"black"
backgroundA cor da luz de fundo"green"

Exemplos

ResultadoAttrs
{ }
{ "pins": "i2c" }
{ "background": "blue", "color": "white" }

Fonte

O LCD1602 usa o chip Hitachi HD44780 LCD Controller. O chip vem com uma fonte embutida, bem como a capacidade de definir até 8 caracteres personalizados.

Existem duas versões da ROM do chip com duas fontes diferentes: HD44780UA00, que inclui caracteres katakana Japoneses, e HD44780UA02, que inclui caracteres da Europa Ocidental.

Wokwi simula a variante HD44780UA00. Possui um total de 256 caracteres:

FaixaDescrição
0-7Caracteres definidos pelo usuário
8-31Caracteres em branco
32-127Caracteres ASCII padrão
128-160Caracteres em branco
161-255Katankana e símbolos japoneses

Símbolos de caracteres ASCII:

3233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127

Símbolos de caracteres especiais:

160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255

Observação: se você precisar de uma variante da fonte HD44780UA02, abra uma solicitação de recurso ou entre em contato no Discord.

Caracteres definidos pelo usuário

Você pode definir caracteres personalizados usando o método createChar da biblioteca LiquidCrsytal (ou LiquidCrystal_I2C). Os caracteres personalizados são os primeiros 8 caracteres da fonte, com índices de 0 a 7. Você pode imprimi-los no LCD exibir usando o método write(), ou usando a sequência de escape de string C, como "\x07".

O exemplo de código a seguir define um caractere em forma de coração, armazena-o no índice 3 e, em seguida, use-o para exibir o texto "Eu ❤ Arduino":

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

uint8_t heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
};

void setup() {
lcd.createChar(3, heart);
lcd.begin(16, 2);
lcd.print(" Eu \x03 Arduino");
}

void loop() { }

Você também pode executar este exemplo no Wokwi.

Você pode modificar qualquer caractere personalizado durante a execução do programa. Este método é útil para criar simples animações. Por exemplo, mude em loop() no código de exemplo acima para lentamente exibir o ícone de coração, linha por linha:

void loop() {
uint8_t heart2[8] = {0};
for (int i = 0; i < 8; i++) {
heart2[i] = heart[i];
lcd.createChar(3, heart2);
delay(100);
}
delay(500);
}

Exemplos no simulador