Ligar um display LCD 16×2 na Raspberry Pi é uma tarefa muito simples, e você pode fazer isso utilizando somente 6 pinos da placa. Existe também a possibilidade de utilizar um módulo I2C (2 pinos), mas isso será assunto para um outro post.

No post de hoje vamos mostrar como enviar caracteres para o display mostrando o endereço IP do Raspberry. Esse esquema pode ser muito útil quando você precisa obter rapidamente informações sobre o endereço IP da placa, especialmente quando o endereço é obtido via DHCP.

Raspberry Pi e display LCD 16x2

O display que vamos usar é um LCD comum 16×2, com controlador  HD44780. Para conexão ao Raspbeerry Pi vamos usar os pinos RS e E, mais  os 4 pinos de dados (D4 a D7). Como vamos apenas escrever no display, conectamos o pino RW no GND. A alimentação do display será feita por meio de um dos pinos 5V do Rasberrpy.

Na figura abaixo, mostramos a pinagem do display LCD e a ligação aos pinos do Raspberry que vamos utilizar no circuito de testes:

Pinagem display LCD 16x2

Você pode modificar os pinos de ligação de acordo com as suas necessidades, utilizando as outras portas da Raspberry Pi. Nesse caso, não esqueça de alterar a configuração também no programa.

Conexão display LCD 16×2 na Raspberry Pi

Faça a ligação do display conforme a relação mostrada acima. O potenciômetro de 10K serve para ajuste do contraste.

Circuito Raspberry Pi B+ e Display LCD 16x2

Verifique as características do display (corrente exigida pelo backlight) e se necessário adicione um resistor de 1K entre o pino 15 e o Vcc, evitando sobrecarregar o Raspberry. Esse resistor não é necessário para os displays mais comuns que usam LED como backlight e consomem por volta de 40mA.

Instalação biblioteca LCD

Certifique-se de que o seu Raspberry está conectado à internet e execute os comandos abaixo no LX Terminal. Não se preocupe com mensagens de erro informando que os pacotes já estão instalados:

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip  git
sudo pip install RPi.GPIO

Como biblioteca, vamos usar a Adafruit_Python_CharLCD. Faça o download da biblioteca e a instalação executando os comandos:

cd ~
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
cd Adafruit_Python_CharLCD
sudo python setup.py install

Após o download e instalação, você terá uma pasta chamada  Adafruit_Python_CharLCD e dentro dela uma pasta chamada EXAMPLES. Dentro desssa pasta você encontra programas para enviar texto simples ao display, usar displays RGB e conectar o LCD ao Raspberry usando pinos PWM.

Teste o display abrindo o IDLE e copie o programa abaixo:

# Programa : Teste display LCD 16x2 e Raspberry Pi B+
# (mostra Texto e endereco IP)
# Autor : Arduino e Cia

import Adafruit_CharLCD as LCD
import socket
import os
import time

# Le as informacoes do endereco IP
gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]

# Pinos LCD x Raspberry (GPIO)
lcd_rs        = 18
lcd_en        = 23
lcd_d4        = 12
lcd_d5        = 16
lcd_d6        = 20
lcd_d7        = 21
lcd_backlight = 4

# Define numero de colunas e linhas do LCD
lcd_colunas = 16
lcd_linhas  = 2

# Configuracao para display 20x4
# lcd_colunas = 20
# lcd_linhas  = 4

# Inicializa o LCD nos pinos configurados acima
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5,
                           lcd_d6, lcd_d7, lcd_colunas, lcd_linhas,
                           lcd_backlight)


# Imprime texto na primeira linha
lcd.message(' Arduino e Cia \n')

# Mostra o endereco IP na segunda linha
lcd.message('IP %s' %(ipaddr))

# Aguarda 10 segundos
time.sleep(10.0)

# Scroll de texto esquerda/direita
while 1:
        lcd.clear()
        message = 'Arduino e Cia'
        lcd.message(message)
        lcd.message('\nRaspberry  Pi')
        for i in range(lcd_colunas-len(message)):
                time.sleep(0.5)
                lcd.move_right()
        for i in range(lcd_colunas-len(message)):
                time.sleep(0.5)
                lcd.move_left()

O programa mostra o texto “Arduino e Cia” na primeira linha do display, e o endereço IP da placa na linha inferior. Após alguns segundos, a tela é apagada e é mostrado um novo texto com aplicação do efeito scroll (rolagem) horizontal. Abaixo, o vídeo com o programa em funcionamento:


Gostou? Confira outros posts usando Raspberry Pi aqui mesmo no Arduino e Cia!

Avalie este post!