ESP32 - Display de 7 Segmentos de 4 Dígitos TM1637
Neste projeto, vamos usar um ESP32 para controlar um módulo display de 7 segmentos de 4 dígitos TM1637. O ESP32 oferece Wi-Fi, Bluetooth, dois núcleos e uma boa quantidade de pinos GPIO - o que o torna ideal para projetos de IoT que precisam de um display numérico.
O que vamos construir:
- Ligar o módulo TM1637 ao ESP32.
- Mostrar números inteiros, texto e valores de temperatura.
- Mostrar a hora no formato HH:MM com os dois-pontos piscando.
- Controlar dígitos individuais e níveis de brilho.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Módulo Display TM1637 em Detalhes
O chip TM1637 cuida da multiplexação e do acionamento de quatro dígitos de 7 segmentos por meio de um protocolo serial simples de 2 fios. Depois que os dados dos dígitos são gravados no TM1637, ele guarda os dados na memória interna e mantém o display aceso sem precisar de nenhum outro comando do microcontrolador.
Recursos do módulo:
- 4 dígitos com 7 segmentos e pontos decimais
- Separador de dois-pontos entre o dígito 1 e o dígito 2
- 8 níveis de brilho
- Interface de 2 fios (CLK + DIO)
- Tensão de operação: 3.3V a 5V
| Função | Pino |
|---|---|
| CLK | Sinal de clock |
| DIO | Entrada/saída de dados |
| VCC | 3.3V ou 5V |
| GND | Terra |
O TM1637 funciona com 3.3V, compatível com o nível lógico do ESP32. Nenhum conversor de nível lógico é necessário.
Diagrama de Ligação
Conecte o TM1637 ao ESP32:
- CLK ao GPIO 21
- DIO ao GPIO 22
- VCC ao 3.3V
- GND ao GND

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Instalação da Biblioteca
- Conecte a placa ESP32 ao seu computador com um cabo USB.
- Abra a Arduino IDE e selecione ESP32 Dev Module como placa. Escolha a porta correta.
- Clique no ícone Libraries na barra lateral esquerda.
- Pesquise "DIYables_4Digit7Segment_TM1637" e encontre a biblioteca da DIYables.
- Clique em Install.

Nenhuma dependência extra é necessária - a biblioteca é independente.
Ponto de Partida
Um sketch mínimo para colocar tudo para funcionar:
Passe os números dos pinos GPIO de CLK e DIO para o construtor, chame begin() e você já pode mostrar dados.
Mãos à Obra - Exibição de Números Inteiros
Mostra vários números inteiros, incluindo valores negativos e números preenchidos com zeros.
Carregar e Testar
- Ligue o módulo TM1637 ao ESP32 conforme descrito acima.
- Conecte o ESP32 ao seu computador via USB.
- Abra a Arduino IDE, selecione a placa e a porta, cole o código e clique em Upload.
- Abra o Serial Monitor para ver a saída.
O display percorre 0, 42, 1234, -5, -123, 9999 e "0042" preenchido com zeros.
Métodos Principais
| Método | O Que Faz | Exemplo |
|---|---|---|
| print(int) | Mostra um número inteiro | display.print(1234) |
| print(int, true) | Mostra com zeros à esquerda | display.print(42, true) |
| clear() | Limpa o display | display.clear() |
Mãos à Obra - Texto e Temperatura
Mostra textos e a temperatura formatada com o símbolo de grau.
Carregar e Testar
- Faça a ligação e carregue o sketch. Abra o Serial Monitor.
Mostra "HELP", "Hi", "COOL", "done" e depois "25°C" e "72°F".
Métodos Principais
| Método | O Que Faz | Exemplo |
|---|---|---|
| print(const char*) | Mostra texto | display.print("HELP") |
| printTemperature(int, char) | Mostra a temperatura | display.printTemperature(25, 'C') |
| DEGREE | Caractere de grau | display.DEGREE |
Mãos à Obra - Hora com Dois-Pontos Piscando
Mostra a hora no estilo de relógio, com os dois-pontos alternando a cada meio segundo.
Carregar e Testar
- Carregue o código e observe "12:30" com os dois-pontos piscando.
Métodos Principais
| Método | O Que Faz | Exemplo | |
|---|---|---|---|
| printTime(int, int) | Mostra HH | MM | display.printTime(12, 30) |
| printTime(int, int, bool) | Controla os dois-pontos | display.printTime(12, 30, false) |
Mãos à Obra - Efeito de Piscar
Liga e desliga o display alternadamente para criar um efeito de piscar.
Carregar e Testar
- Carregue o código. "1234" pisca cinco vezes e depois "HELP" pisca cinco vezes.
Métodos Principais
| Método | O Que Faz | Exemplo |
|---|---|---|
| off() | Desliga o display, os dados são mantidos | display.off() |
| on() | Liga o display novamente | display.on() |
| setBrightness(int) | Define o brilho de 0 a 7 | display.setBrightness(4) |
Mãos à Obra - Controle Individual dos Dígitos
Define cada dígito separadamente com números, caracteres e os dois-pontos.
Carregar e Testar
- Carregue o código e observe as várias combinações de dígitos e caracteres.
Métodos Principais
| Método | O Que Faz | Exemplo |
|---|---|---|
| setNumber(int, int) | Define um dígito de 0 a 9 | display.setNumber(0, 1) |
| setChar(int, char) | Define um caractere | display.setChar(0, 'H') |
| setColon(bool) | Controla os dois-pontos | display.setColon(true) |
| setSegments(int, uint8_t) | Dados brutos dos segmentos | display.setSegments(0, 0x76) |
Solução de Problemas
- O display continua apagado - Verifique a ligação. Certifique-se de que CLK e DIO estão ligados aos pinos GPIO corretos do ESP32. Verifique se o VCC está conectado ao 3.3V.
- Caracteres errados aparecem - CLK e DIO provavelmente estão invertidos. Troque os dois fios.
- Muito fraco - Use setBrightness(7) para o brilho máximo.
- O upload falha - Segure o botão BOOT do ESP32 durante o upload se a sua placa exigir isso.
Plataformas Suportadas
A biblioteca é construída usando apenas APIs padrão do Arduino e funciona em todas as plataformas compatíveis com Arduino, incluindo o ESP32.