Vamos utilizar o display LCD 16×2 com módulo I2C no Arduino.
O módulo I2C para display LCD 16×2 ou 20×4 tem como principal função simplificar as conexões e facilitar a utilização de displays LCD ao microcontrolador.
O módulo I2C deve ser acoplado ao display LCD por meio da conexão dos seus 16 pinos, conforme ilustra a figura 01.
No centro do módulo I2C, está o chip PCF8574, um expansor de 8 bits que converte os dados I2C de um microcontrolador nos dados paralelos exigidos pelo display LCD.
Na parte lateral, o módulo I2C conta com quatro pinos para conexão com o Arduino ou qualquer outro microcontrolador que suporte o protocolo de comunicação I2C. Estes quatro pinos são: GND, VCC, SDA e SCL. O pino SDA (do inglês, Serial Data) é o responsável pela transferência e recebimento de dados. Por sua vez, o pino SCL (do inglês, Serial Clock) é utilizado para temporização.
O módulo I2C conta também com dois pinos para controle da luz de fundo do visor do display, que se encontram conectados por um jumper, por padrão. Assim, a luz de fundo estará sempre ligada. Você pode remover este jumper para desligar a luz de fundo do display.
Além disto, a placa conta com um pequeno trimpot para fazer ajustes finos no contraste do display e um barramento para configuração do endereço I2C.
A figura 02 detalha as partes que compõem o módulo I2C para display LCD 16×2 ou 20×4.
O barramento de configuração do endereço possui três jumpers de solda (A0, A1 e A2) ou pads de solda, usados para codificar o endereço. Acima de cada pad há uma conexão de aterramento (GND). Para alterar o endereço, basta conectar qualquer pad ao pino GND localizado acima deles, soldando-os.
A figura 3 mostra um modelo de como mudar endereço por meio de soldagem em um display e demonstra todas as conexões e endereços hexadecimais possíveis.
Ligação dos componentes
Inicialmente, certifique-se de que a sua placa Arduino esteja desligada. Em seguida monte o circuito da Figura 4 utilizando o Módulo I2C e os jumpers macho-fêmea.
Ao montar o circuito observe os seguintes pontos:
- O GND do módulo I2C deve ser conectado ao pino GND do Arduino;
- O módulo I2C opera com uma tensão de alimentação de 5V. Deste modo, conecte o VCC ao pino 5V do Arduino;
- Nas placas Arduino UNO, os pinos associados ao I2C são A4 (SDA) e A5 (SCL).
Na utilização do código, utilizaremos o endereço I2c do nosso módulo. Como existem diferentes endereços é necessário conhecer qual o nosso está cadastrado, para isso basta fazer o upload do código abaixo na Arduino IDE.
Com o código compilado, poderemos ter acesso ao endereço I2C do módulo no monitor serial, no nosso caso foi encontrado o endereço 0x3F, mostrado na figura ao 05.
Após a montagem do circuito, vamos programação do Sketch no Arduino IDE. Nesse projeto, vamos utilizar o Display 16×02 com módulo I2C para exibir inicialmente as mensagens:
“Prof. Sinesio Gomes”
“ Projetos 2025 ”
Para fazer a comunicação do modulo I2C o Arduino, vamos utilizar a biblioteca Wire.h que já se encontra instalada com o Arduino IDE. Para incluí-la ao sketch acesse o seguinte caminho: Sketch>Incluir Biblioteca> Wire.
Vamos usar também a biblioteca LiquidCrystal_I2C.h que permite controlar displays I2C com funções exatamente semelhantes à biblioteca LiquidCrystal. Para instalá-la, abra o Gerenciador de Bibliotecas através do caminho: Ferramentas>Gerenciar Bibliotecas… ou por meio do atalho Ctrl+Shift+I. Em seguida, busque por LiquidCrystal I2C e clique em instalar, conforme a figura 05.
Vamos entender a lógica de programação desse projeto a partir dos seguintes passos:
1. Incluir as bibliotecas:
Foram incluídas as bibliotecas Wire.h para fazer a comunicação com o I2C e LiquidCrystal_I2C.h para controlar displays I2C.
2. Definir as constantes:
No código definiremos 3 constantes. A constante “col” que se refere ao número de colunas utilizadas no Display, a constante “lin” que se refere ao número de linhas utilizadas no display e a constante “ende” que se refere ao endereço o qual o display se encontra, no nosso caso encontramos 0x3F, se o seu for diferente, substitua pelo endereço encontrado.
3. Criar objeto do tipo LiquidCrystal_I2C
Em seguida, criaremos o objeto lcd, do tipo LiquidCrystal_I2C, e informamos o endereço, número de counas e linhas do display, no seguinte formato: LiquidCrystal lcd(<endereço>, <coluna>, <linha>);
4. Função setup();
No setup(), inicializaremos a exibição do display LCD usando a função init(). A função clear() será usada para limpar o buffer de exibição. A função backlight deve ser utilizada para ativar a luz de fundo do display.
Para iniciar a escrita no display LCD precisamos colocar o cursor na posição na coluna 0 e linha 0. Para isso, usaremos a função lcd.setCursor(0, 0);. A partir daí, escreveremos a primeira parte do texto, que será feita a partir da função lcd.print (“Prof. Sinesio Gomes”);
Para escrever a segunda linha do texto, posicionaremos o cursor para a posição linha 1 e coluna 0 com a função lcd.setCursor(0, 1);. Daí, escreveremos o texto com a função lcd.print(“ Projetos 2025 ”);
5. Função loop()
No loop, chamaremos a função que desliga o display lcd.noDisplay() e liga o display lcd.display();.
Desta forma, o Sketch do projeto ficará da seguinte maneira, para o display 20x4:
Após a transferência do código, o display exibirá as mensagens:
"SENAI Henrique Lupo"
"2EL - SEDUC - EEBA"
“Prof. Sinesio Gomes”
“ Projetos 2025 ”
OBSERVAÇÃO: Caso seu display não exiba as mensagens após a transferência do código, ajuste o contraste do display.
O módulo I2C para display LCD 16×2 ou 20×4 possui um pequeno trimpot de ajuste do contraste do display, conforme Figura 8. Para aumentar o contraste do display basta girar o trimpot no sentido anti-horário. Por sua vez, para diminuir o contraste gire no sentido horário.
O manual com diagrama elétrico da placa do LCD I2C está disponìvel em: 25_0-10_10 LCD Display I2C .
© Direitos de autor. 2021: Gomes; Sinésio Raimundo. Última atualização: 10/10/2025