Arduino - Display de 7 Segmentos de 4 Dígitos 74HC595
Este tutorial ensina como usar um módulo de display de 7 segmentos de 4 dígitos com um registrador de deslocamento 74HC595 usando Arduino. Em detalhes, vamos aprender:
- Como ligar o módulo de display de 7 segmentos de 4 dígitos 74HC595 a um Arduino.
- Como mostrar números inteiros e decimais no display.
- Como mostrar texto e caracteres especiais, como o símbolo de grau.
- Como mostrar leituras de hora e temperatura.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Display de 7 Segmentos de 4 Dígitos com 74HC595
O módulo de display de 7 segmentos de 4 dígitos com 74HC595 é um display compacto que usa um registrador de deslocamento para reduzir o número de pinos necessários do microcontrolador. Em vez de precisar de 12 ou mais pinos, este módulo usa apenas 3 pinos de dados (SCLK, RCLK, DIO) para controlar os 4 dígitos e seus pontos decimais.
Cada dígito é formado por 7 segmentos de LED (nomeados de A a G) mais um ponto decimal (DP). Ao acender diferentes combinações de segmentos, o display pode mostrar os dígitos de 0 a 9, várias letras e caracteres especiais.
O módulo suporta as configurações de ânodo comum e de cátodo comum. Este tutorial usa a versão de ânodo comum.
Mapeamento de Pinos
| Função | Pino | Descrição |
|---|---|---|
| SCLK (SH_CP) | Clock Serial | Sinal de clock para deslocar os dados |
| RCLK (ST_CP) | Clock do Registrador | Sinal de trava (latch) para enviar os dados deslocados à saída |
| DIO (DS) | Entrada de Dados | Entrada de dados serial |
| VCC | Alimentação | 3.3V ou 5V |
| GND | Terra | Conexão de terra |
Diagrama de Ligação
Conecte o módulo de display 74HC595 ao Arduino da seguinte forma:
- SCLK ao pino 7 do Arduino
- RCLK ao pino 6 do Arduino
- DIO ao pino 5 do Arduino
- VCC ao 5V
- GND ao GND

This image is created using Fritzing. Click to enlarge image
Instalação da Biblioteca
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas.
- Vá até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise "DIYables_4Digit7Segment_74HC595" e encontre a biblioteca DIYables_4Digit7Segment_74HC595 da DIYables.
- Clique no botão Install para instalar a biblioteca. Selecione a versão 2.0.0 ou mais recente.

Observação: Esta biblioteca é independente e não tem dependências externas.
Estrutura Básica
Todo sketch que usa a biblioteca DIYables_4Digit7Segment_74HC595 segue esta estrutura básica:
O display usa multiplexação para mostrar os 4 dígitos. O método display.loop() cuida do ciclo de atualização e deve ser chamado com frequência na sua função loop(). Você define o conteúdo uma vez com print(), e ele continua no display enquanto loop() continuar rodando.
Se o seu código tem delays longos, use display.delay(ms) em vez do delay(ms) padrão para manter o display atualizado durante a espera.
Código Arduino - Mostrar Números Inteiros
Este exemplo mostra como exibir números inteiros no display de 7 segmentos, incluindo números negativos e preenchimento com zeros.
Passos Rápidos
- Ligue o módulo de display ao Arduino como mostrado no diagrama de ligação acima.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas.
- Copie o código acima e cole no editor do Arduino IDE.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor para ver a saída.
O display passa por vários números inteiros: 0, 42, 1234, -5, -123, 9999 e depois mostra 42 com preenchimento de zeros (0042). Cada valor fica no display por 2 segundos.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| print(int) | Mostra um número inteiro (-999 a 9999) | display.print(1234) |
| print(int, true) | Mostra um inteiro com zeros à esquerda | display.print(42, true) mostra 0042 |
| loop() | Atualiza o display (chame no loop) | display.loop() |
Código Arduino - Mostrar Números Decimais
Este exemplo demonstra como exibir números de ponto flutuante com casas decimais automáticas e manuais.
Passos Rápidos
- Ligue o módulo de display ao Arduino como mostrado acima.
- Copie o código acima e cole no editor do Arduino IDE.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor.
O display mostra vários valores decimais. Com casas decimais automáticas, a biblioteca escolhe o melhor ajuste. Você também pode definir um número fixo de casas decimais e ativar o preenchimento com zeros.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| print(double) | Mostra um decimal com casas automáticas | display.print(12.34) |
| print(double, dp) | Mostra um decimal com dp casas decimais | display.print(1.5, 2) mostra 1.50 |
| print(double, dp, true) | Decimal com casas e preenchimento de zeros | display.print(1.5, 2, true) |
Código Arduino - Mostrar Texto e Temperatura
Este exemplo mostra como exibir textos, o símbolo de grau e valores de temperatura.
Passos Rápidos
- Ligue o módulo de display ao Arduino como mostrado acima.
- Copie o código acima e cole no editor do Arduino IDE.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor.
O display mostra textos como "HELP", "Hi", "COOL" e "done", depois os valores de temperatura 25 graus C e 72 graus F, depois um texto com a constante de grau e, por fim, pontos em todos os dígitos (1.2.3.4).
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| print(const char*) | Mostra um texto (até 4 caracteres) | display.print("HELP") |
| printTemperature(int, char) | Mostra a temperatura com o grau e a unidade | display.printTemperature(25, 'C') |
| DEGREE_CHAR | Constante para o símbolo de grau | display.print("25" + degStr) |
Código Arduino - Mostrar a Hora
Este exemplo mostra a hora no estilo de relógio, no formato HH.MM, com um ponto separador piscando.
Passos Rápidos
- Ligue o módulo de display ao Arduino como mostrado acima.
- Copie o código acima e cole no editor do Arduino IDE.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor.
O display mostra 12.30 com o ponto entre o segundo e o terceiro dígito piscando a cada 500ms, criando uma aparência de relógio.
Código Arduino - Fazer o Display Piscar
Este exemplo faz diferentes valores piscarem, ligando e desligando com os métodos off() e on().
Passos Rápidos
- Ligue o módulo de display ao Arduino como mostrado acima.
- Copie o código acima e cole no editor do Arduino IDE.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor.
O display faz piscar o inteiro 1234, depois o decimal 12.34 e depois o texto "HELP" - cada um pisca 5 vezes antes de passar para o próximo.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| off() | Desliga o display | display.off() |
| on() | Liga o display novamente | display.on() |
| delay(ms) | Delay que mantém o display atualizado | display.delay(1000) |
| yield() | Uma única chamada de atualização para loops longos | display.yield() |
Solução de Problemas
Se o código não funcionar, há alguns problemas comuns que você pode verificar:
- O display não mostra nada: Verifique se VCC e GND estão conectados. Confirme se os pinos SCLK, RCLK e DIO correspondem ao seu código. Certifique-se de que display.begin() é chamado em setup() e display.loop() é chamado em loop().
- Os segmentos mostram caracteres errados: Confirme se o seu módulo é de ânodo comum ou de cátodo comum. O padrão é ânodo comum. Para cátodo comum, passe false como quarto parâmetro: DIYables_4Digit7Segment_74HC595 display(7, 6, 5, false).
- O display pisca ou fica apagado: O display.loop() deve ser chamado com frequência. Evite usar delay() no seu código - use display.delay() em vez disso para manter o display atualizado.
Plataformas Suportadas
A biblioteca usa apenas APIs padrão do Arduino (pinMode, digitalWrite, millis) e suporta todas as plataformas Arduino (architectures=*).