Guia completo dos Displays de 7 segmentos – Arduino

Nesse Guia completo dos Displays de 7 segmentos – Arduino, você aprenderá como funcionam os Displays de 7 segmentos e métodos de controle dos mesmos. Terá instruções de como fazer as montagens de alguns tipos de displays mais comuns, usando o Arduino. Esses são os tópicos desse Tutorial :

  • Os primórdios do Display de Led,
  • Como funciona um display de 7 segmentos,
  • Usando Display com o PCF8574,
  • Usando Display com o MAX7219,
  • Usando Display com TM1637,
  • Links importantes sobre Displays de 7 segmentos.

Os Primórdios do Display de Led

O princípio de funcionamento de obtenção de luz à partir da emissão de fótons de cristais semicondutores foi descoberto no início do século XX .

O LED (light emitting diode) ou diodo emissor de luz, apesar de ter sido criado no início da década de 1960, somente à partir da década de 70 teve aplicação comercial difundida em todo mundo.

O fabricante Texas Instruments foi que conseguiu inovar e fabricar Led vermelhos. No início, esses Leds serviam como indicadores luminosos para circuitos eletrônicos. E logo depois foi desenvolvido uma aplicação mais elaborada – o display de 7 segmentos.

A Texas inovou mais uma vez ao criar a primeira calculadora eletrônica digital com display de 7 segmentos. Naquela época, as calculadoras eram mecânicas. Imagine o sucesso que foi, ao introduzir no mercado mundial uma calculadora pequena, portátil e que funcionava com pilhas ! Eu presenciei toda essa evolução, e fiquei maravilhado quando a minha mãe comprou na década de 70, uma calculadora Texas TI-30 .

wikipedia TexasTI-30

Calculadora Texas TI-30

Como funciona um display de 7 segmentos

Como eu informei, os displays de 7 segmentos foram desenvolvidos à partir da evolução dos Leds. O Led é um diodo de material semicondutor que quando a corrente elétrica é passada por ele, uma luz é emitida. Devido à construção desse semicondutor, é necessária uma limitação de corrente, pois senão ele queima. Por isso, para a ligação de um Led, um resistor em série deve ser conectado. Perceba que cada segmento do Display é formado por um led. Ao acionar os segmentos, pode-se formar números e letras (com algumas limitações). É esse o princípio simples de funcionamento de um Display. Os segmentos são identificados com letras de A até G e mais DP para o ponto decimal. Existem dois tipos de displays, com o catodo comum e com o anodo comum. Como o nome já diz, no primeiro tipo, os catodos de todos os segmentos estão conectados em um único pino negativo. E no segundo tipo, os anodos estão conectados também em um só pino, mas positivo. Portanto as polarizações dos segmentos são inversas uma da outra.

Display de 7 segmentos

Uma das desvantagens desse display, é o alto consumo de corrente. Por isso na calculadora da Texas, os dígitos eram bem pequeninos, para diminuir o consumo de energia já que funcionava com uma bateria de 9 Volts. Posteriormente foram desenvolvidos outros tipos de displays, como o de Cristal Líquido (LCD) com baixíssimo consumo de energia.

O legal do Display de 7 segmentos é que ele é visível em um ambiente com pouca luz, pois emite luz. E mesmo em um ambiente com luz solar, consegue-se ter uma boa visibilidade. Esses displays foram (e são ainda) muito usados em instrumentos do painel de carros esportivos.

Tacômetro digital de carro esportivo

Algumas aplicações comuns para Displays de 7 segmentos :

  • Relógio digital,
  • Termômetro digital,
  • Placar eletrônico,
  • Painel de instrumento, etc.


Usando Display com o PCF8574

Existem basicamente dois métodos de controle dos Displays de 7 segmentos. O método de controle direto dos segmentos através de portas dos registradores e o método de multiplexação dos segmentos .

O método de controle deve ser analisado antes de montar um projeto, pois existem vantagens e desvantagens em cada método.

Método de controle direto dos segmentos :

Esse tipo de circuito tem a vantagem de emitir uma maior quantidade de luz, tornando-o mais visível. Mas ao mesmo tempo, gasta-se mais corrente. Como cada segmento sempre fica ligado ou desligado, um registrador é associado à cada um. Registrador no estado 1 aciona o segmento. Estado 0 apaga o segmento.

Analisando vários projetos de Displays de 7 segmentos com Arduino, a grande maioria usa as próprias portas do Microcontrolador para acionar os segmentos. Achei esses circuitos inapropriados para o Arduino. Não acho interessante usar 8 ou mais portas para acionamento dos displays, pois dessa forma, sobram poucas portas para outros dispositivos.

Usando o 8 bit I/O Expander PCF8574 :

Por isso, na primeira montagem usei o chip PCF8574. Esse chip contem 8 registradores que podem funcionar como entrada e ou como saída. No controle do display, os registradores são configurados como saída. Como a interface do chip é a I2C, apenas dois pinos são conectados nas portas do Arduino (SDA e SCL). E uma grande vantagem é que no barramento I2C, até oito PCF8574 podem ser usados, conectados em paralelo.

Pinagem do Display F5161BH – anodo comum
(ponto preto = anodo comum)
PCF8574 pinagem

Esse é o diagrama do circuito de controle de dois displays de 7 segmentos (F5161BH- anodo comum) usando os chips PCF8574. Qualquer outro display anodo comum poderá ser usado, desde que não ultrapasse a capacidade de corrente do I/O Expander. Esse circuito é modular e poderá conectar até 8 displays em um mesmo barramento I2C. Para cada display é usado um chip.

Veja que existem muitas ligações entre os displays e o chip. Mas o controle do Arduino é feito através de apenas duas ligações da interface I2C. Para simplificar o diagrama, separei algumas ligações. Conecte as ligações identificadas por letras e cores. Para limitar a corrente nos leds, resistores de 220 ohms são conectados em série com os segmentos. Se precisar de mais brilho, pode usar resistores de até 100 ohms. Resistores de pullup de 4,7 K ohms são necessários nas ligações SDA e SCL da interface I2C. O chip PCF8574 da esquerda tem o endereço 0x21 e o da direita o endereço 0x20 (pinos A0,A1 e A2). São muitas ligações, portanto antes de energizar o circuito, confira todo a montagem.

Display 7 segmentos com PCF8574

O sketch para fazer funcionar os displays usando o PCF8574, foi desenvolvido por mim baseando-me em outros dois exemplos. Se for usar mais de 2 displays em um mesmo barramento I2C, terá que fazer algumas adaptações no programa.

O Programa faz a contagem de 0 a 99, sucessivamente.


Usando Display com o MAX7219

Método de Multiplexação dos segmentos do Display :

A grande vantagem desse método, é que nesse caso são usados módulos de Displays que tem um número menor de pinos. Os segmentos dos dígitos são interligados internamente em paralelo. Portanto, temos 8 pinos para os segmentos (A até G e o ponto decimal) e mais um pino para cada dígito (algarismo).

Módulo de display com 4 dígitos – CL5642-AS (catodo comum)
(abra em outra aba para ampliar)

Basicamente a multiplexação consiste no acionamento de um dígito por vez. Por exemplo, os segmentos do primeiro dígito são acionados e ao mesmo tempo o pino comum do mesmo é acionado também. No próximo passo, os segmentos do segundo dígito e o pino comum do mesmo são acionados. E assim por diante até mostrar todos os dígitos. E depois a sequência volta a ser iniciada e continuada.

Na multiplexação, o tempo de visualização é dividido entre os dígitos (números). Essa é uma das desvantagens, pois como o circuito é compartilhado entre os dígitos, menor corrente passará nos segmentos produzindo um menor brilho. Mas se o seu projeto pretende gastar menos energia, esse método é recomendado.

Usando o Display Driver MAX7219 :

Nessa montagem com multiplexação, usaremos o chip MAX7219. É um chip projetado para multiplexação de vários tipos de displays. Não somente os displays de 7 segmentos (até 8 dígitos) , mas também para displays com matrizes de 64 Leds ( 8 x 8 ) ! No chip existem vários registradores de controle como os dados dos dígitos, controle de brilho, tempo de varredura, teste do display, etc. A interface usada é a SPI. Mas somente três pinos são conectados ao Arduino (Load, DIN e CLK). Um detalhe importante é que esse chip foi projetado para controlar displays com catodo comum. Vi em um site, que é possível montar com displays com anodo comum, mas será necessário criar uma biblioteca dedicada e não posso afirmar se vai funcionar corretamente. Portanto use displays com catodo comum.

Pinagem do chip MAX7219

Esse é o digrama do circuito com o módulo Display com 4 Dígitos. A multiplexação dos segmentos é realizada pelo MAX7219. Como nesse circuito somente 4 dígitos são usados, alguns pinos de controle do chip não tem conexão. Como o diagrama ficaria muito complexo, separei os circuitos. Faça as ligações do MAX7219 com o módulo do display, obedecendo as identificações e cores de cada ligação. Veja que tem um resistor de 100K entre o pino 18 do MAX7219 e o 5V. Esse resistor serve para ajustar o brilho do display. São muitas ligações, portanto antes de energizar o circuito, confira todo a montagem. Não deixe de alimentar o Chip com 5V no pino 19.

O módulo do display é o CL5642-AS (catodo comum). Mas qualquer outro módulo com 4 dígitos (catodo comum – com 12 pinos) poderá ser usado, desde que não ultrapasse a capacidade de corrente do MAX7219 (veja as especificações). OBS: a sequência de conexões dos dígitos no chip MAX7219 está diferente (inversa) do datasheet.

A biblioteca usada para o funcionamento do módulo de display com o MAX7219 é a LedMatrixDriver. Para instalar a nova Biblioteca , clique em :

Sketch > Incluir Biblioteca > Gerenciar Bibliotecas 

Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando  LedMatrix . Na biblioteca LEDMatrixDriver , clique em More Info e depois em Instalar. Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa  Arduino IDE.

GitHub – Biblioteca LedMatrixDriver

O Sketch para o Display com MAX7219, usa a comunicação SPI. No display aparece a contagem do número 0 até 9999. E depois a palavra HELP. O programa foi desenvolvido baseando-me no exemplo da Biblioteca e no programa que eu fiz para o display com PCF8574.


Usando Display com TM1637

O Chip TM1637 é dedicado para esse tipo de aplicação. Ele controla toda a multiplexação do módulo de display com até seis dígitos. Considero um dos mais simples e mais eficientes circuitos controladores de display. E ele usa somente dois pinos para interface, apesar de não ser I2C. Ele também tem um registrador para controle de brilho do display. Para maiores informações, veja o datasheet.

Esse é o digrama de montagem do Módulo Display TM1637 com Arduino. A montagem é bem simples. A alimentação do módulo pode ser feita com o 5V do Arduino. Eu medi o consumo de corrente com todos os dígitos ativados = 42 mA aproximadamente. E o brilho do display é muito bom.

A biblioteca usada para teste do Módulo TM1637 é a TM1637. Para instalar a nova Biblioteca TM1637 , clique em :

Sketch > Incluir Biblioteca > Gerenciar Bibliotecas 

Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando TM1637. Na biblioteca  TM1637 , clique em More Info e depois em Instalar. Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa  Arduino IDE.

GitHub – Biblioteca TM1637

Esse é o Sketch para teste do Módulo Display TM1637. Editei-o baseando-me no exemplo da Biblioteca. No exemplo tem mais alternativas de uso, mas simplifiquei-o para facilitar a compreensão.


Links importantes sobre Displays de 7 segmentos

Display de 7 segmentos – Wikipedia

Como testar um display de 7 segmentos – anodo ou catodo comum? – YouTube

Usando Displays de 7 segmentos – parte 1 – Nuts & Volts

Usando Displays de 7 segmentos – parte 2 – Nuts & Volts

Datasheet de vários Displays de 7 segmentos

Se gostar ou tiver alguma dúvida,  deixe um comentário!

Rating: 4.7/5. From 3 votes.
Please wait...
Gustavo Murta
Gustavo Murta
Consultor e Projetista de Sistemas Embarcados. Técnico em eletrônica, formado em Curso superior de TPD, pós-graduado em Marketing. Trabalhou por muitos anos na IBM na área de manutenção de computadores de grande porte. Aposentou-se, podendo curtir o que mais gosta : estudar e ensinar Tecnologia. Hobista em eletrônica desde 1976. Gosta muito de Fotografia e Observação de aves.