Utilizando Raspberry Pi 2 com Display LCD 20×4 9

Neste artigo vamos mostrar como ligar, em poucos passos, um Raspberry Pi 2 com Display LCD 20×4, permitindo que você mostre as mais diversas informações como avisos, mensagens, data, hora, informações de sensores, endereço ip, etc, criando uma eficiente interface de comunicação com o usuário.

Raspberry_Pi_Display_20x40_Imagem (1)

Antes de conectar o display, vamos preparar o Raspbian atualizando o sistema operacional e instalando a biblioteca necessária para o seu funcionamento.

Instalação biblioteca LCD

Conecte o seu Raspberry Pi 2 à internet utilizando a porta ethernet ou um adaptador wifi. Abra uma janela de terminal (LX Terminal), e execute os comandos abaixo, ignorando eventuais mensagens de erro informando que o pacote já está instalado:

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

Vamos fazer agora o download e instalação da biblioteca da Adafruit, a Adafruit_Python_CharLCD:

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

Será criada uma pasta chamada Adafruit_Python_CharLCD. Dentro dela, você encontra uma outra pasta chamada EXAMPLES, com vários programas para testes, como envio de strings, utilização com displays RGB, entre outros. A biblioteca funciona com displays 16×2 e 20×4, bastando alterar duas linhas no programa.

Conectando o display LCD 20×4 ao Raspberry Pi 2

A conexão utiliza 4 pinos de dados e 2 de controle, e no Raspberry vamos usar as portas 18, 23, 12, 16, 20 e 21 para os pinos RS, E, D4, D5, D6 e D7, respectivamente. A alimentação do display será feita pelos pinos 2 (5V) e 6 (GND) do Raspberry.

GPIO Raspberry

Monte o circuito abaixo utilizando um potenciômetro para ajuste do contraste do display. Utilizamos um potenciômetro de 10 K mas você pode usar outros valores, como 50 K ou 100 K:

Circuito Raspberry e LCD 20x4

Caso necessite, é possível reduzir a luminosidade da luz de fundo do LCD utilizando um resistor entre o pino 15 do display e o Vcc.

Programando o Raspberry Pi 2

Digite ou copie o programa abaixo na IDLE do Raspbian. Você pode utilizar esse mesmo programa para controlar displays 16×2, alterando os valores nas linhas 18 (colunas) e 19 (linhas), e tomando cuidado para que o valor das linhas e colunas nos comandos lcd.set_cursor() não ultrapasse os limites do display que você estiver utilizando.

# Programa : Raspberry Pi 2 com Display LCD 20x4
# Autor : MakerHero

import Adafruit_CharLCD as LCD
import math
import time

# Pinos de ligacao ao display
lcd_rs        = 18  
lcd_en        = 23
lcd_d4        = 12
lcd_d5        = 16
lcd_d6        = 20
lcd_d7        = 21
lcd_bl        = 4

# Define o numero de linhas e colunas
lcd_columns = 20
lcd_rows    = 4

# Inicializa o LCD utilizando os pinos definidos acima.
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6,
			   lcd_d7, lcd_columns, lcd_rows, lcd_bl)

while 1:
        # Apaga o display
        lcd.clear()
        # Posiciona o cursor
        lcd.set_cursor(5,0)
        # Exibe mensagem
        lcd.message('MakerHero')
        
        lcd.set_cursor(1,2)
        lcd.message('www.makerhero.com')
        
        # Aguarda 5 segundos
        time.sleep(5.0)
            
        # Scroll de texto
        lcd.clear()
        lcd.set_cursor(0,0)
        message = 'Raspberry'
        lcd.message(message)
        lcd.set_cursor(0,1)
        lcd.message('  Pi  2')
        lcd.set_cursor(0,3)
        lcd.message('LCD  20x4')
        for i in range(lcd_columns-len(message)):
                time.sleep(0.5)
                lcd.move_right()
        for i in range(lcd_columns-len(message)):
                time.sleep(0.5)
                lcd.move_left()
        
        # Aguarda 5 segundos e reinicia o processo
        time.sleep(5.0)

Além dos comandos utilizados no programa, a biblioteca contém ainda funções para habilitar ou desabilitar o display, modificar o cursor, utilizar caracteres customizados e controlar a luz de fundo. Abra uma janela do terminal e execute o comando abaixo para ter uma relação completa das funções disponíveis na biblioteca:

python
import Adafruit_CharLCD as LCD
help(LCD.Adafruit_CharLCD)

 Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

9 Comentários

  1. E para o display com módulo I2C? o código é o mesmo ou muda alguma coisa?

  2. Olá, o tutorial também serve para uso do display LCD 16×2 + RPi 3 modelo B?
    Verifiquei que as conexões no módulo LCD usado no exemplo (20×4) são as mesmas do 16×2 que comprei aqui no site.

    Obrigado.

  3. Excelente matéria.
    Sou novato em programação pyton e Raspbbery PI, montei este LCD segui todo o roteiro mas está dando erro ao importar —-> ImportError: No module named ‘Adafruit_CharLCD’
    alguem poderia me dar uma dica do que estou possivelmente fazendo errado?

    1. Também estou tendo o mesmo problema. Vc conseguiu solucionar?

      FELIPE FERREIRA LIMA E LIMA
      1. Olá Felipe!

        Você realizou os comandos do terminal na ordem?

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

        Em que parte que deu erro?

        Abraços!

        André – Equipe MakerHero

        1. Boa tarde, sei que já pode ser um pouco tarde, mas descobri que os pacotes para o Python 3 devem ser instalados com outro comando, e que os pacotes acima funcionam normalmente nas versões do Python inferiores à 3. Então, no Raspbian (não sei qual a minha versão) é só editar o main menu, que tem um “app” específico para isso, que é acessado pelo “Menu Iniciar” do Raspbian, em seguida “Preferences” ou preferencias e daí vc clica no “Main Menu Editor”. Lá vc clica em “Desenvolvimento” na barra ao lado esuqerdo e habilita o “Python 2 (IDLE)”. Então, vc abre o IDLE da versão 2 e clica em File>Open e procura o arquivo q vc salvou o programa ali de cima. Daí é só dar o ‘run’ q é pra dar certo.

          Qualquer erro me desculpe, sou iniciante!

  4. Ótimo exemplo. Parabéns.
    Eu tô querendo montar um pequeno servidor de arquivos com o Rapberry Pi, e na frente da caixinha vou colocar um display LCD 20×4.
    Quero mostrar informações de velocidade e temperatura do CPU e o quanto de espaço vazio tem nos HDs externos que estiverem plugados nas portas USB. Tem ideia de onde posso encontrar essas informações?
    Obrigado.

    1. Bom dia Fernando,

      Creio que nesse link tenha (quase) tudo que você precisa: https://www.raspberrypi.org/forums/viewtopic.php?f=32&t=22180

      Abraço!

      Adilson – Equipe MakerHero

  5. Tenho um raspberry pi 2 e um hifiberry dac+, como eu faço para adicionar um display lcd 16×2 para que informe a música/tempo e banda que está tocando?