Como utilizar os displays LCD 16×02 e 20×04 com a Raspberry Pi Pico
Neste tutorial, será apresentado como usar os displays LCD 16×02 e 20×04 com módulos I2C em conjunto com a Raspberry Pi Pico, utilizando MicroPython como linguagem de programação. O objetivo é demonstrar como realizar a comunicação com o display e a Raspberry Pi Pico e exibir informações de forma prática e organizada.
Para quem está tendo o primeiro contato com a Raspberry Pi Pico, é importante conhecer antes como funciona o ambiente de programação. Por isso, recomenda-se acessar o tutorial “Como programar a Raspberry Pi Pico em Python”, onde são explicados os primeiros passos, a configuração do ambiente e os comandos iniciais necessários para começar a programar a placa.
MATERIAIS NECESSÁRIOS
1x Display LCD Azul 16×02 com Módulo I2C Soldado
1x Display LCD Azul 20×04 com Módulo I2C Soldado
ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES
Inicialmente, certifique-se de que a Raspberry esteja desligada. Em seguida, conecte os fios no display e na protoboard, seguindo os seguintes passos:
- O GND do display deve ser conectado no GND da Raspberry Pi Pico;
- O VCC do display deve ser conectado ao VSYS (5V quando alimentado pelo USB) da Raspberry Pi Pico;
- O SDA do display deve ser conectado ao pino GP0, que possui a configuração I2C0 SDA;
- O SCL do display deve ser conectado ao pino GP1, que possui a configuração I2C0 SCL;
OBS: Você pode usar outros pinos GPIO, só que os pinos escolhidos devem ter a configuração I2C0 SDA e I2C0 SCL, ou I2C1 SDA e I2C1 SCL.
ELABORANDO O CÓDIGO
Primeiramente, baixe o código lcd_i2c.py, e mande ele para a Raspberry Pi Pico, como mostrado no Gif 1.

Assim, será possivel utilizar a classe LCD e suas funções já prontas para configurar o display. Essas funções são:
- lcd.clear() – Limpa o que foi escrito no display
- lcd.openlight() – Liga o brilho do display
- lcd.closelight() – Desliga o brilho do display
- lcd.write(linha, coluna, “Mensagem”) – Define em que linha e coluna será escrita a mensagem
- lcd.print_center (coluna, “Mensagem”) – Escreve a mensagem centralizada na coluna definida
Sabendo o que cada função faz, é só montar o código da maneira que desejar, em um novo arquivo, para aparecer uma mensagem no display. O código a seguir é um exemplo que serve para o display LCD 20×04.
from time import sleep #importa a função sleep, da classe time
from lcd_i2c import LCD #importa a classe LCD do arquivo lcd_i2c
#Funções:
#lcd.clear() - Limpa o que foi escrito no display
#lcd.openlight() - Liga o brilho do display
#lcd.closelight() - Desliga o brilho do display
#lcd.write(linha, coluna, "Mensagem") - Define em que linha e coluna será escrita a mensagem
#lcd.print_center (coluna, "Mensagem") - Escreve a mensagem centralizada na coluna definida
#Configuração inicial - define a dimensão do display e pinos I2C (id do I2C, sda, sdl)
lcd = LCD(cols=20, rows=4, i2c_id=0, sda_pin=0, scl_pin=1)
lcd.openlight()
lcd.clear()
while True:
lcd.print_center(0, "Acesse:")
lcd.print_center(1, "blogdarobotica.com")
lcd.print_center(2, "e")
lcd.print_center(3, "casadarobotica.com")
sleep(2)
lcd.clear()
sleep(0.1)
lcd.print_center(0, "Projetos")
sleep(1)
lcd.print_center(1, "Tutoriais")
sleep(1)
lcd.print_center(2, "Kits de robotica")
sleep(1)
lcd.print_center(3, "Robotica educacional")
sleep(2)
lcd.clear()
sleep(0.1)
for i in range(7):
lcd.openlight()
lcd.print_center(2, "E muito mais!!")
sleep(0.5)
lcd.closelight()
sleep(0.2)
lcd.openlight()
lcd.clear()
sleep(0.1)
Seguindo a mesma ideia, o código a seguir é um exemplo que serve para o Display LCD 16×02:
from time import sleep #importa a função sleep, da classe time
from lcd_i2c import LCD #importa a classe LCD do arquivo lcd_i2c
#Funções:
#lcd.clear() - Limpa o que foi escrito no display
#lcd.openlight() - Liga o brilho do display
#lcd.closelight() - Desliga o brilho do display
#lcd.write(linha, coluna, "Mensagem") - Define em que linha e coluna será escrita a mensagem
#lcd.print_center (coluna, "Mensagem") - Escreve a mensagem centralizada na coluna definida
#Configuração inicial - define a dimensão do display e pinos I2C (id do I2C, sda, sdl)
lcd = LCD(cols=16, rows=2, i2c_id=0, sda_pin=0, scl_pin=1)
lcd.openlight()
lcd.clear()
while True:
lcd.print_center(0, "Acesse:")
lcd.write(0, 1, "Blog da Robotica")
sleep(2)
lcd.clear()
sleep(0.1)
lcd.print_center(0, "Projetos")
sleep(1)
lcd.print_center(1, "Tutoriais")
sleep(2)
lcd.clear()
sleep(0.1)
for i in range(7):
lcd.openlight()
lcd.write(0, 0, "E muito mais!!!!")
sleep(0.5)
lcd.closelight()
sleep(0.2)
lcd.openlight()
lcd.clear()
sleep(0.1)
Esses códigos são apenas exemplos simples que utiliza as funções do arquivo/biblioteca lcd_i2c.py. Você pode ir muito além e fazer projetos mais elaborados utilizando outros componentes, como LEDs, sensores, módulos, buzzers, etc…
Espero que tenha gostado do tutorial. Caso tenha dúvidas ou sugestões, deixe um comentário abaixo.
Valeu!
Graduando em Engenharia da Computação.

