COMO UTILIZAR UM LCD E UM MÓDULO 12C COM O ARDUINO UNO
Em um dos nossos artigos sobre LCD, você notou que o clássico LCD paralelo consome muitos pinos do Arduino. Mesmo no modo mais simples de 4 bits, são necessários pelo menos 6 pinos digitais do Arduino destinados a conexão do display. Portanto, quando se utiliza o clássico LCD paralelo, a depender do projeto a falta de pinos pode ser um grande problema.
A solução para este problema é usar um módulo I2C para display LCD. O módulo requer apenas dois pinos de E/S digitais e você pode até compartilhar esses dois pinos com outros dispositivos I2C.
Neste artigo, iremos demonstrar as características do módulo I2C para display, além disso, demostraremos como realizar a integração de um LCD 16x2 com um módulo I2C para display I2C.
Visão geral do LCD I2C
Um display LCD I2C consiste em um LCD paralelo clássico e um adaptador LCD I2C. O adaptador LCD I2C é soldado na parte de trás do LCD.
Caso você já tenha um LCD, você só precisa comprar o módulo I2C e soldá-lo diretamente nos pinos do display. Agora vamos dar uma olhada em detalhes no display LCD e no módulo I2C para display.
Display de cristal líquido (LCD)
Os monitores LCD comumente disponíveis com o módulo LCD I2C são monitores LCD de 16 × 2 (16 colunas e 2 linhas) e 20 × 4 (20 colunas e 4 linhas). Ambos têm um total de 16 pinos, incluindo 8 pinos de dados paralelos. Portanto, se você não usar um LCD I2C, precisará de pelo menos 6 pinos de E/S digital no Arduino para exibir algo.
Visão geral do adaptador LCD I2C
No centro deste módulo, há um chip de expansão de E/S de 8 bits – PCF8574. Ele pega os dados I2C do microcontrolador (Arduino) e os converte em dados seriais, necessários para um display LCD. De um lado, o módulo LCD I2C possui quatro pinos que podem ser conectados ao Arduino ou a qualquer microcontrolador que suporte o protocolo de comunicação I2C. Do outro lado, possui 16 pinos que são conectados ao display de LCD.
Existem dois pinos para controlar a luz de fundo do visor do display de LCD. Um pino fornece uma alimentação de 5v e outro pino é para o LED da luz de fundo. Esses dois pinos são conectados juntos por padrão. Portanto, a luz de fundo estará sempre ligada. Você pode remover o jumper para desligar o LED da luz de fundo ou pode usar um potenciômetro entre esses dois pinos para controlar a intensidade do LED da luz de fundo.
O módulo LCD I2C também possui um pequeno potenciômetro para ajustar o contraste da tela.
Como alterar o endereço I2C padrão
Alguns módulos LCD I2C vêm com o chip PCF8574, enquanto outros usam o chip PCF8574A. Cada um desses chips tem seu próprio endereço I2C. O chip PCF8574 utiliza o endereço “0x27” enquanto o chip PCF8574A utiliza o “0x3F”.
Para projetos que utilizem vários dispositivos I2C no mesmo barramento, às vezes, se torna necessário alterar o endereço padrão I2C. O objetivo desta mudança é evitar que os diversos dispositivos I2C entrem em conflito.
Para alterar o endereço padrão I2C, o módulo possui pads de seleção de endereço, representado por A0, A1 e A2 (conforme imagem a seguir).
Cada um desses pads tem uma conexão de aterramento acima dele. Por padrão, cada um desses pinos está conectado ao VDD ou a uma fonte de alimentação positiva. Você pode alterar o endereço conectando qualquer pino ao pino de aterramento acima dele. Você pode fazer qualquer combinação possível e obterá um endereço diferente. A partir desses três pinos (A0, A1 e A2), você pode obter 8 endereços diferentes.
Se você examinar o datasheet do chip PCF8574 da NXP, descobrirá que o PCF8574 e o PCF8574A usam um endereço I2C de 7 bits. O primeiro de quatro bits é fixo e o último de três bits é selecionável por hardware.
Conforme você leu acima, A0, A1 e A2 são conectados à fonte de alimentação positiva por padrão. Portanto, o endereço padrão do PCF8574 é 0100111 em binário ou 0x27 em hexadecimal. Dessa forma, ao conectar o pino A0 no pino de aterramento, ele se tornará um nível lógico baixo. O endereço mudará para 0100110 em binário ou 0x26 em hexadecimal.
Veja a ilustração abaixo para encontrar todas as conexões possíveis e os endereços hexadecimais.
Pinagem do módulo I2C para display
O módulo I2C para display possui quatro pinos de saída I2C. Esses quatro pinos são: Terra, VCC, SDA e SCL. Na imagem a seguir, você pode observar os principais pinos do módulo I2C.
Especificações e Características do módulo I2C para display
- Fonte de alimentação 5V.
- Controle serial I2C
- A luz de fundo pode ser ativada ou desativada por meio de um jumper na placa.
- Controle de contraste através de um potenciômetro.
- Possibilidade de adicionar 8 módulos em um único barramento I2C (mudança de endereço via jumpers de solda).
- Tamanho: 41,6 x 19,2 mm.
Como utilizar o display de LCD I2C com o Arduino Uno
Conectar um display LCD I2C com Arduino é muito simples em comparação com um display LCD normal. Basicamente você só precisará conectar quatro fios ao Arduino. A seguir, iremos demonstrar através da elaboração de um circuito, como realizar esta integração entre o display de LCD I2C e o Arduino Uno de forma prática. Iremos assumir que o módulo I2C para display foi adquirido a parte do display, necessitando desta maneira, efetuar as conexões entre o display e o módulo I2C.
Materiais para montagem
Passos para a montagem do circuito
A montagem do circuito deve ser feita conforme imagem a seguir. Observe atentamente a posição correta dos terminais do módulo I2C e do display de LCD. No Arduino Uno, o pino SCL é o A5 e o pino SDA é o pino A4, conecte-o adequadamente.
Resumo das Conexões entre os componentes |
|
|
|
Pino 5V (Arduino) |
VCC (Módulo I2C) |
|
|
Pino GND (Arduino) |
GND (Módulo I2C) |
|
|
Pino A5 (Arduino) |
SCL (Módulo I2C) |
|
|
Pino A4 (Arduino) |
SDA (Módulo I2C) |
|
|
VSS (Display) |
VSS (Módulo I2C) |
|
|
VDD (Display) |
VDD (Módulo I2C) |
|
|
V0 (Display) |
V0 (Módulo I2C) |
|
|
RS (Display) |
RS (Módulo I2C) |
|
|
RW (Display) |
RW (Módulo I2C) |
|
|
E (Display) |
E (Módulo I2C) |
|
|
D0 (Display) |
D0 (Módulo I2C) |
|
|
D1 (Display) |
D1 (Módulo I2C) |
|
|
D2 (Display) |
D2 (Módulo I2C) |
|
|
D3 (Display) |
D3 (Módulo I2C) |
|
|
D4(Display) |
D4(Módulo I2C) |
|
|
D5 (Display) |
D5 (Módulo I2C) |
|
|
D6 (Display) |
D6 (Módulo I2C) |
|
|
D7 (Display) |
D7 (Módulo I2C) |
|
|
A OU 15 (Display) |
A OU 15 (Módulo I2C) |
Programação do Arduino
Primeiramente precisamos instalar a biblioteca “LiquidCrystal-I2C”. Esta biblioteca já possui muitas funções pré-construídas para controlar um display LCD I2C de uma maneira muito mais simples.
Para instalar a biblioteca primeiro você precisa baixá-la do repositório LiquidCrystal-I2C GitHub. Em seguida, abra a IDE do Arduino e navegue até Sketch > Incluir biblioteca > Adicionar biblioteca.ZIP.
Selecione o arquivo .zip que você acabou de baixar e clique no botão abrir. A instalação está feita.
Encontre o endereço I2C do seu LCD
Você precisa saber o endereço I2C do LCD antes de iniciar a comunicação. Para saber o endereço I2C do seu LCD, copie e execute o código abaixo.
Abra o monitor serial da IDE do Arduino e você obterá um resultado como o exibido a seguir.
Você deve anotar o endereço I2C do seu LCD em algum lugar. Você precisará dele para o próximo código.
Como exibir um texto simples com o LCD I2C
Exibir um texto no LCD I2C é muito simples. O código abaixo exibirá o texto na tela do LCD. Mas antes de carregar o código, você precisará colocar o endereço I2C encontrado através do código anterior. O endereço I2C do nosso display é “0x27” e possui 16 colunas e 2 linhas. Então iremos utilizar “LiquidCrystal_I2C lcd(0x27,16,2)”. Se você tiver um display LCD diferente, altere o endereço I2C e a dimensão de acordo.
Código:
Após digitar o código, basta fazer o upload no Arduino Uno. O processo para fazer o upload do código no Arduino Uno é bem simples:
- Conecte o seu Arduino Uno utilizando o cabo USB.
- Vá em Ferramentas ? Placa ? Arduino Uno para selecionar sua placa no menu Arduino.
- Em seguida escolha a porta serial correta para sua placa vá em ferramentas ? Porta serial ? COMx (Escolha a porta serial ao qual o seu Arduino estiver conectado).
- Por fim, basta clicar no botão Carregar.
Se não houver nenhum erro de digitação ou configuração, o código será gravado no Arduino. Caso contrário verifique se o código foi digitado corretamente e se as configurações estão corretas.
Após o código ser carregado com sucesso, o display irá exibir automaticamente a mensagem “STA ELETRONICA” na primeira linha do display e “DISPLAY LCD I2C” na segunda linha do display.