Como ligar um display LCD 16×2 na Raspberry Pi
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.
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:
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.
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!
Muito bom! funcionou comigo.
Tenho uma dúvida. O Backlight não desliga ou pisca. Seria o caso de ligar o pino 15 do LCD no pino 7 da GPIO (GPIO 4). É seguro fazer isto?
Boa noite Rodrigo,
Mas ele funciona, certo ? Sim, você pode ligar o pino 15 à uma das portas do Raspberry, já vi alguns projetos funcionando assim.
Abraço !
Parabéns! tem alguma forma de identificar se o LCD usa o controlador HD44780? Tenho dois LCDs que uso em arduino uno, porem não tem nenhuma indicação HD44780. Qualquer LCD 16×2 server?
Grato!
Boa noite Ronualdo,
Não encontrei ainda uma forma de identificar o controlador. De qualquer forma, o HD44780 é um dos controladores mais comuns em displays LCD.
Abraço!
já está disponível o envio por I2C?
Boa tarde,
A conexão com display I2C você encontra neste link:
http://www.arduinoecia.com.br/2016/12/como-usar-display-lcd-i2c-raspberry-pi.html
Abraço!
Adilson
Essa configuração também pode ser executada no Raspberry Pi 3 Model B?
Boa tarde,
Pode sim, perfeitamente.
Abraço!
Adilson
Essa configuração pode ser executada também na Raspberry Pi 3 Model B?
Oi Roniere,
Perfeitamente. 🙂
Abraço!
Adilson
Boa tarde, não sei se aqui é o caso de fazer esta pergunta mais vale a intenção…
Vamos la.. Pessoal tem como eu fazer com que o raspberry funcione com uma aplicação em html e nesta aplicação assim que selecionar um botão virtual ele responda as gpio??
Se alguem puder me ajudar agradeço…. Obrigado!!
Como faço pra mostra as coordenadas do gps ligado no gpio nos pinos vcc, gnd, tx e rx?
Oi Manuel,
Qual módulo você está utilizando?
Abraço!
Adilson
Qual a senha de acesso a pasta dentro do terminal?
Estou tendo problemas para executar o programa. Erro na sintax
Olá tenho o seguinte erro ao rodar o “python setup.py install” em um pi 3 com openwrt 4.14.221
File “/tmp/easy_install-Wg8nph/Adafruit_PureIO-1.1.8/temp/easy_install-BOs0cL/setuptools_scm-6.0.1/src/setuptools_scm/utils.py”, line 41
print(*k)
^
SyntaxError: invalid syntax