Tento návod ukazuje, jak připojit 4místný 7segmentový displej s driverem TM1637 k ESP32 pomocí Arduino IDE. Naučíš se zapojení, základní funkce i praktické projekty jako digitální hodiny nebo zobrazení teploty.
Co je TM1637 displej
TM1637 je modul, který obsahuje čtyři 7segmentové číslice řízené jedním čipem. Nejčastější varianta má mezi druhou a třetí číslicí dvojtečku, což se hodí například pro zobrazení času.
Existují i jiné varianty:
- s tečkami mezi číslicemi
- se šesti číslicemi (ty ale potřebují jinou knihovnu)


Zapojení k ESP32
Displej se připojuje velmi jednoduše – používá jen dva datové piny:
- CLK → libovolný GPIO (např. GPIO 19)
- DIO → libovolný GPIO (např. GPIO 18)
- VCC → VIN (nebo 5V)
- GND → GND
Můžeš použít i jiné GPIO piny podle potřeby.

Instalace knihovny
Použij knihovnu TM1637Display (avishorp):
- Otevři Arduino IDE
- Přejdi do Library Manageru
- Vyhledej „TM1637“
- Nainstaluj knihovnu
Je sice starší, ale stále funguje velmi dobře a je jednoduchá na použití.

Ovládání segmentů
Každá číslice má 7 segmentů (A–G), které se ovládají pomocí bitů:
- A → bit 0
- B → bit 1
- C → bit 2
- D → bit 3
- E → bit 4
- F → bit 5
- G → bit 6
Například:
- zapnutí A+B+C →
0b0000111 - zapnutí B+C →
0b0000110
Jak zobrazit čísla
Každé číslo odpovídá kombinaci segmentů:
- 0 → a b c d e f
- 1 → b c
- 2 → a b g e d
- 3 → a b g c d
- 4 → f g b c
- 5 → a f g c d
- 6 → a f g e d c
- 7 → a b c
- 8 → všechny
- 9 → a b c d f g
Testovací kód (základní funkce)
1#include <Arduino.h>
2#include <TM1637Display.h>
3
4#define CLK 19
5#define DIO 18
6
7TM1637Display display(CLK, DIO);
8
9void setup() {
10 display.setBrightness(7);
11
12 uint8_t segments[] = {
13 0b0111111,
14 0b0000110,
15 0b1011011,
16 0b1001111
17 };
18
19 display.setSegments(segments);
20}
21
22void loop() {
23}Tento kód ověří, že displej funguje správně.
Praktické projekty
Digitální hodiny (NTP přes WiFi)
Displej je ideální pro hodiny:
Princip:
- ESP32 se připojí k WiFi
- získá čas přes NTP
- zobrazí ho jako HH:MM
Čas se převádí na číslo:
1int value = hours * 100 + minutes;Např.:
- 12:30 → 1230
Dvojtečka může blikat každou sekundu.
Kompletní kód – WiFi hodiny
1#include <WiFi.h>
2#include "time.h"
3#include <TM1637Display.h>
4
5#define CLK 19
6#define DIO 18
7
8TM1637Display display(CLK, DIO);
9
10// WiFi údaje
11const char* ssid = "TVE_WIFI";
12const char* password = "HESLO";
13
14// časová zóna (CZ)
15const char* TZ_INFO = "CET-1CEST,M3.5.0/2,M10.5.0/3";
16
17void setup() {
18 display.setBrightness(7);
19
20 WiFi.begin(ssid, password);
21 while (WiFi.status() != WL_CONNECTED) {
22 delay(500);
23 }
24
25 configTzTime(TZ_INFO, "pool.ntp.org");
26}
27
28void loop() {
29 struct tm timeinfo;
30
31 if (!getLocalTime(&timeinfo)) {
32 return;
33 }
34
35 int hours = timeinfo.tm_hour;
36 int minutes = timeinfo.tm_min;
37
38 int value = hours * 100 + minutes;
39
40 static bool colon = false;
41 colon = !colon;
42
43 uint8_t colonMask = colon ? 0b01000000 : 0;
44
45 display.showNumberDecEx(value, colonMask, true);
46
47 delay(1000);
48}Zobrazení teploty (Weather API)
Druhý projekt:
- ESP32 stáhne teplotu z internetu
- zobrazí ji na displeji
- není potřeba žádný senzor
Výhodou je využití WiFi místo hardwaru.
Shrnutí
TM1637 je:
- levný
- jednoduchý
- ideální pro IoT
Použiješ ho na:
- hodiny
- počítadla
- senzory
- zobrazování dat
Stačí jen 2 piny a pár funkcí.
