Como usar um display de 7 segmentos com Raspberry Pi Pico

Tempo de leitura: 5 minutes

Monitores de 7 segmentos, do tipo encontrado em despertadores digitais antigos, podem ser ótimos para projetos do Raspberry Pi, incluindo aqueles que você faz com o Raspberry Pi Pico. Você pode usar um display de 7 segmentos para manter a pontuação em um jogo, mostrar dados do sensor como temperatura ou números de distância ou para controlar o tempo. Você pode até mostrar algumas letras.

Existem muitos tipos de visores de 7 segmentos no mercado e eles variam não apenas com base no número de dígitos e na cor, mas também na placa controladora ou na falta dela. Alguns monitores baratos de 7 segmentos não têm controlador e usam pinos separados para cada luz. Quando você considera que cada dígito tem sete luzes diferentes (daí o nome “display de 7 segmentos”), isso é um monte de pinos.

No entanto, os melhores visores de 7 segmentos têm placas controladoras que empregam uma conexão I2C que usa apenas quatro pinos, alimentadas por uma placa controladora TM1637. Abaixo, mostraremos como usar um desses monitores de 7 segmentos com TM1637 com Raspberry Pi Pico.

 

O que você precisará

  • Display de 7 segmentos. Existem tantos modelos, mas usamos este.
  • Raspberry Pi Pico com cabeçotes de pinos soldados e MicroPython.
  • Quatro cabos de ligação fêmea para fêmea

 

Como conectar um monitor de 7 segmentos ao Raspberry Pi Pico

O display de 7 segmentos possui quatro pinos: CLK, DIO, GND e VCC. Se você usar fios jumper de fêmea para fêmea, não precisa de uma placa de ensaio para fazer as conexões.

Conecte os seguintes pinos do display de 7 segmentos ao PIco.

  1. Pino VCC para 3V3 no Pico (pino físico 36, o quinto no lado direito).
  2. Pino GND para GND no Pico (pino físico 34, o terceiro no lado direito).
  3. Pino CLK para GP16 no Pico (último pino no lado direito).
  4. Pino DIO para GP17 no Pico (penúltimo pino no lado direito).

Você pode escolher conectar os pinos CLK e DIO a quaisquer dois pinos GPIO no Pico que suportem I2C SCL e SDA respectivamente e você pode conectar o pino GND a qualquer um dos 8 pinos GND do Pico. Consulte a pinagem do Raspberry Pi Pico para obter detalhes.

Como codificar um display de 7 segmentos em MicroPython

Vamos contar muito com a excelente biblioteca TM1637 MicroPython de Mike Causer e criar um script que mostra uma variedade de opções de exibição, que você pode usar em seus próprios projetos mais tarde.

5. Baixe o arquivo tm1637.py do projeto github TM1637 de Mike Causer. Você não precisa dos outros arquivos.

6. Copie tm1637.py para o diretório raiz do Pico. Uma vez que o Pico com MicroPython não aparece como uma letra de unidade, a maneira mais fácil de fazer isso é abrir tm1637.py no Thonny ou no IDE ou à sua escolha e salvá-lo a partir daí.

7. Crie um novo script MicroPython em Thonny ou no IDE MicroPython de sua escolha.

8. Importe as bibliotecas necessárias.

import tm1637
from machine import Pin
from utime import sleep

Usaremos a biblioteca utime para colocar um atraso de “hibernação” de um segundo entre cada função para que você tenha tempo de assisti-las no visor.

9. Crie uma instância do objeto tm1637.TM1637 chamado “mydisplay” e insira os números de pino corretos para os pinos CLK e DIO como parâmetros.

mydisplay = tm1637.TM1637(clk=Pin(16), dio=Pin(17))

10. Use o método “show” para exibir quaisquer quatro caracteres. Podem ser letras ou números, mas observe que muitas letras, W por exemplo, parecerão estranhas. Se você inserir mais de quatro caracteres, apenas os quatro primeiros serão exibidos. Certifique-se de colocar a string do parâmetro entre aspas.

mydisplay.show(“Pico”)
sleep(1)

11. Apague a tela usando “show” com quatro espaços em branco (supondo que você tenha quatro dígitos na tela).

mydisplay.show(“    “)
sleep(1)

Observe que, se você não apagar a tela, ela permanecerá ligada quando a execução do programa terminar. Você não precisa deixar o visor em branco ao alterá-lo, mas se usar outro comando show com menos do que o número máximo de caracteres, todos os caracteres que você não substituir permanecerão na tela. Por exemplo, se você mostrar (“halo”) e depois mostrar (“20”), a tela exibirá 20lo.

12. Use o método “número” para mostrar um inteiro. Não coloque aspas em torno do parâmetro. Você pode exibir um número negativo ou positivo, mas se for um número negativo, deve reservar um caractere para o sinal de menos. Observe que, se você inserir um número maior do que o número disponível de dígitos (ex: inserir 12345 no display de quatro dígitos), a tela irá mostrar “9999” ou “-999” para números negativos.

mydisplay.number(-123)
sleep(1)

Use o método “números” para mostrar um tempo com a cor visível. Insira dois números de dois dígitos como parâmetros e os dois pontos, desde que sua tela tenha um, serão exibidos entre eles. Este exemplo aparecerá como 12:59.

13. Considerando que você pode usar o método “mostrar” para mostrar números ou letras, você pode se perguntar por que deseja usar o método numérico. Uma razão é que você não precisa converter inteiros em strings e outra é que a tela usará apenas a quantidade necessária de dígitos, então você não precisa inserir espaços em branco para alinhar seu número à direita.

mydisplay.numbers(12,59)
sleep(1)

14. Ajuste o brilho usando o método de brilho. Você pode inserir um número que varia de 0 (mais baixo) a 7 (mais alto) como o parâmetro.

#ajuste o brilho para diminuí-lo
mydisplay.brightness(0)
sleep(1)

15. Use o método de “rolagem” para exibir o texto de rolagem. Insira uma string (entre aspas) como o primeiro parâmetro e adicione, “atraso =” e um número de milissegundos para controlar a velocidade da rolagem. Se você pular o parâmetro de atraso, o padrão será 250ms.

mydisplay.scroll("Hello World 123", delay=200)
sleep(1)

16. Use o método de “temperatura” para mostrar a temperatura em Celsius. Este método adiciona o símbolo de grau e a letra C após seus dígitos. Você insere um número inteiro de um ou dois dígitos como a temperatura e pode fazer temperaturas negativas, mas podem ter apenas um dígito.

mydisplay.temperature(99)
sleep(1)

17. Apague a tela novamente para que não fique acesa quando o programa terminar.

mydisplay.show(“    “)

 

Código

import tm1637
from machine import Pin
from utime import sleep
mydisplay = tm1637.TM1637(clk=Pin(16), dio=Pin(17))
 
#Mostrar uma palavra
mydisplay.show("Pico")
sleep(1)
 
#apagar a tela
mydisplay.show("    ")
sleep(1)
 
#mostrar números
mydisplay.number(-123)
sleep(1)
 
#mostrar um tempo com dois pontos
mydisplay.numbers(12,59)
sleep(1)
 
#ajuste o brilho para diminuir
mydisplay.brightness(0)
sleep(1)
 
#mostrar texto de rolagem
mydisplay.scroll("Hello World 123", delay=200)
sleep(1)
 
#mostrar temperatura
mydisplay.temperature(99)
sleep(1)
 
#apagar a tela novamente
mydisplay.show(" ")

Existem outros métodos que o criador documenta em sua página do github, incluindo um que converterá números em formato hexadecimal para você ou receberá entrada hexadecimal. No entanto, esses são os principais métodos que achamos que a maioria das pessoas precisará para se familiarizar com um display de 7 segmentos e Raspberry Pi Pico.

Visits: 1 Visits: 1126491