ESP8266 - Display de 7 Segmentos e 4 Dígitos com TM1637
Vamos colocar seu ESP8266 para funcionar com um display de 7 segmentos e 4 dígitos TM1637. O ESP8266 é um microcontrolador Wi-Fi compacto e acessível - perfeito para projetos IoT leves que precisam de uma saída numérica simples.
Veja o que vamos abordar:
- Ligar o módulo TM1637 ao ESP8266.
- Exibir inteiros, textos e temperatura.
- Mostrar a hora no formato HH:MM com os dois pontos piscando.
- Definir dígitos individuais e controlar o brilho.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Conhecendo o Módulo Display TM1637
O TM1637 é um CI driver dedicado para displays LED de 7 segmentos. Ele se comunica com o microcontrolador por um link serial de 2 fios (CLK e DIO) e cuida de toda a multiplexação dos LEDs internamente. Depois que você envia os dados ao TM1637, o display continua mostrando esses dados até você alterá-los.
O que o módulo oferece:
- 4 dígitos, cada um com 7 segmentos mais ponto decimal
- Separador de dois pontos entre o dígito 1 e o 2
- 8 níveis de brilho, controláveis por software
- Funciona com 3.3V - perfeito para o nível lógico do ESP8266
- Não precisa de atualização contínua
| Função | Pino |
|---|---|
| CLK | Sinal de clock |
| DIO | Dados de E/S |
| VCC | 3.3V ou 5V |
| GND | Terra |
Conecte CLK e DIO a quaisquer pinos GPIO disponíveis no ESP8266. Evite GPIO0, GPIO2 e GPIO15, pois eles afetam o modo de boot.
Diagrama de Ligação
Conecte o TM1637 ao ESP8266 NodeMCU:
- CLK ao D2
- DIO ao D1
- VCC ao 3.3V
- GND ao GND

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Adicionando a Biblioteca
- Conecte o ESP8266 ao seu computador com um cabo USB.
- Abra a Arduino IDE. Selecione NodeMCU 1.0 (ESP-12E Module) como placa e escolha a porta correta.
- Vá até a seção Libraries à esquerda.
- Procure por "DIYables_4Digit7Segment_TM1637" e encontre a biblioteca da DIYables.
- Toque em Install.

A biblioteca já vem com tudo o que precisa - sem dependências extras.
Código de Início Rápido
O sketch mais curto para ver resultados:
Crie o display com os números dos GPIO para CLK e DIO, chame begin() e comece a exibir dados imediatamente.
Experimente - Exibição de Inteiros
Exibe uma série de inteiros, incluindo números negativos e valores preenchidos com zeros.
Execute o Código
- Ligue o módulo TM1637 ao ESP8266 como descrito acima.
- Conecte o ESP8266 ao seu computador via USB.
- Na Arduino IDE, escolha a placa e a porta, cole o código e pressione Upload.
- Abra o Serial Monitor para conferir a saída.
O display percorre 0, 42, 1234, -5, -123, 9999 e depois "0042" preenchido com zeros.
Métodos Úteis
| Método | Finalidade | Como Chamar |
|---|---|---|
| print(int) | Mostrar um inteiro | display.print(1234) |
| print(int, true) | Mostrar com zeros à esquerda | display.print(42, true) |
| clear() | Limpar o display | display.clear() |
Experimente - Texto e Temperatura
Mostra textos e a temperatura formatada com o símbolo de grau.
Execute o Código
- Ligue e faça o upload. Abra o Serial Monitor.
Mostra "HELP", "Hi", "COOL", "done", depois "25°C" e "72°F".
Métodos Úteis
| Método | Finalidade | Como Chamar |
|---|---|---|
| print(const char*) | Exibir texto | display.print("HELP") |
| printTemperature(int, char) | Mostrar temperatura | display.printTemperature(25, 'C') |
| DEGREE | Caractere de grau | display.DEGREE |
Experimente - Hora com Dois Pontos
Mostra a hora no formato HH:MM com os dois pontos piscando a cada 500ms.
Execute o Código
- Faça o upload e veja "12:30" com os dois pontos piscando.
Métodos Úteis
| Método | Finalidade | Como Chamar | |
|---|---|---|---|
| printTime(int, int) | Exibir HH | MM | display.printTime(12, 30) |
| printTime(int, int, bool) | Controlar os dois pontos | display.printTime(12, 30, false) |
Experimente - Efeito de Piscar
Faz o display piscar usando off() e on(), preservando o conteúdo.
Execute o Código
- Faça o upload e observe "1234" piscando, depois "HELP" piscando.
Métodos Úteis
| Método | Finalidade | Como Chamar |
|---|---|---|
| off() | Desligar o display | display.off() |
| on() | Ligar o display | display.on() |
| setBrightness(int) | Definir o brilho 0-7 | display.setBrightness(4) |
Experimente - Dígitos Individuais
Define cada dígito de forma independente com números, caracteres e os dois pontos.
Execute o Código
- Faça o upload e veja as combinações de dígitos mudarem.
Métodos Úteis
| Método | Finalidade | Como Chamar |
|---|---|---|
| setNumber(int, int) | Definir o dígito 0-9 | display.setNumber(0, 1) |
| setChar(int, char) | Definir o caractere | display.setChar(0, 'H') |
| setColon(bool) | Controlar os dois pontos | display.setColon(true) |
| setSegments(int, uint8_t) | Segmentos brutos | display.setSegments(0, 0x76) |
Se Algo Não Estiver Funcionando
- Display em branco: Verifique novamente os quatro fios. Confirme que os números dos GPIO de CLK e DIO coincidem entre o código e a ligação física.
- Saída errada: CLK e DIO podem estar trocados. Troque os dois fios de sinal.
- Display fraco: Chame setBrightness(7) para o brilho máximo.
- Falha no upload: Algumas placas ESP8266 exigem que você pressione FLASH durante o upload. Verifique também se a placa e a porta corretas estão selecionadas.
Dica: O ESP8266 tem poucos pinos GPIO. Confira se nenhum dos pinos que você está usando entra em conflito com os modos de boot (GPIO0, GPIO2, GPIO15).
Suporte de Plataformas
A biblioteca usa apenas APIs padrão do Arduino e funciona em todas as plataformas compatíveis com Arduino, incluindo o ESP8266.