Wer regelmäßig mit Mikrocontrollern arbeitet, kennt sie bestimmt: die 7-Segmentanzeigen mit TM1637-Chip. Sie sind einfach anzusteuern, kompakt und günstig. Doch es gibt unterschiedliche Varianten – und jede bringt ihre eigenen Besonderheiten mit.
In diesem Beitrag vergleiche ich die 4-stellige und 6-stellige Ausführung der Anzeige und erkläre, welche sich für welchen Einsatzzweck besser eignet.




Inhaltsverzeichnis
- Die 4-stellige TM1637-Anzeige
- Die 6-stellige TM1637-Anzeige
- Direkter Vergleich
- Programmierung der TM1637-Segmentanzeigen
- Beispielprojekt: Level-Anzeige mit Drehpoti und mehreren TM1637-Segmentanzeigen
Die 4-stellige TM1637-Anzeige
Die klassische 4-stellige Anzeige ist sehr weit verbreitet – gerade in Arduino- und ESP-Projekten.




Vorteile
Kompakt und leicht zu integrieren
- Nur zwei Datenleitungen (CLK und DIO)
- Unterstützt den mittleren Doppelpunkt (zwischen Ziffer 2 und 3)
- Darstellung einfacher Texte wie
HELP
,On
,Err
möglich - Ideal für:
- Uhrzeit im Format MM:SS oder HH:MM
- Timer und Zähler
- Ganzzahlige Werte und einfache Textcodes
Einschränkungen
- Keine Dezimalpunkte pro Ziffer
- Maximal 4 Zeichen darstellbar
Weitere Beiträge zur 4-stelligen Segmentanzeige
Die 4-stellige 7-Segmentanzeige habe ich bereits in mehreren Projekten auf diesem Blog vorgestellt – in Kombination mit verschiedenen Mikrocontrollern und Programmiersprachen wie Arduino C++, Python, MicroPython und CircuitPython.




Hier eine Auswahl meiner bisherigen Beiträge:
- Arduino Lektion 62: 7 Segmentanzeige ansteuern
- Arduino Lektion 89: 4fach Segmentanzeige mit TM1636 / TM1637
- Raspberry Pi Pico #11: 4fach Segmentanzeige mit CircuitPython
- MicroPython mit ESP32: Zahlen und Zeichen auf der 4fach 7-Segmentanzeige darstellen
In all diesen Beispielen steht die einfache Ansteuerung der Anzeige im Vordergrund, jeweils passend zur Plattform. So kannst du unabhängig von der Hardware direkt loslegen.
Die 6-stellige TM1637-Anzeige
Die 6-stellige Variante bietet mehr Platz – und punktet mit zusätzlichen Möglichkeiten.


Vorteile
- Anzeige von längeren Zahlen und Text
- Unterstützt Dezimalpunkte an jeder Stelle
- Inzwischen durch geeignete Bibliothek vollständig ansteuerbar
- Ideal für:
- Gleitkommazahlen (z. B. 12.3456)
- Sensorwerte mit Kommastellen
- Alphanumerische Codes und Texte
Einschränkungen
- Kein mittlerer Doppelpunkt vorhanden (nicht ideal für Uhrzeit)
- Größer als die 4-stellige Variante
Direkter Vergleich
Merkmal | 4-stellig TM1637 | 6-stellig TM1637 |
---|---|---|
Anzahl Zeichen | 4 | 6 |
Doppelpunkt (Colon) | ✅ Ja | ❌ Nein |
Dezimalpunkte pro Stelle | ❌ Nein | ✅ Ja |
Anzeige von Uhrzeit | ✅ Ideal | ⚠ Möglich, aber ohne Doppelpunkt |
Anzeige von Kommazahlen | ❌ Umständlich | ✅ Optimal |
Anzeige von Text | ✅ Einfach | ✅ Einfach |
Ansteuerung per TM1637 | ✅ Einfach | ✅ Einfach |
📌 Hinweis zur Bibliothek:
Für die 6-stellige Anzeige verwende ich eine alternative TM1637-kompatible Bibliothek, die beide Typen vollständig unterstützt. Die Standardbibliothek von Avishay Orpaz funktioniert gut mit 4-stelligen Anzeigen, stößt bei 6-stelligen jedoch an ihre Grenzen.
Empfehlung
- Für Uhrzeit und kompakte Werte → 4-stellig
- Für Gleitkommazahlen, Sensorwerte und längere Texte → 6-stellig
Weitere Beiträge & Videos:
- Fehlender Doppelpunkt bei TM1637? Lösung mit TM1637Display.h Schritt für Schritt
- YouTube-Video: Fehlender Doppelpunkt bei TM1637? Lösung mit TM1637Display.h Schritt für Schritt
Gerne! Hier ist ein kompakter, informativer Abschnitt zur Programmierung und zur verwendeten Bibliothek – ideal als Kapitel in deinem Blogbeitrag:
Programmierung der TM1637-Segmentanzeigen
Für die Ansteuerung der 4- und 6-stelligen TM1637-Segmentanzeigen verwende ich die leichtgewichtige und leistungsfähige Bibliothek TM1637TinyDisplay von Jason A. Cox.
Diese Bibliothek unterstützt sowohl die klassischen 4-stelligen Anzeigen als auch die 6-stelligen Varianten mit Dezimalpunkten – ohne größere Unterschiede bei der Programmierung.
Die Einbindung erfolgt über:
#include <TM1637TinyDisplay.h> // für 4-stellige Anzeige #include <TM1637TinyDisplay6.h> // für 6-stellige Anzeige
Wichtig:
Für die 6-stellige Anzeige muss beim Klassennamen ein „6“ ergänzt werden:
TM1637TinyDisplay6 display(clk, dio); // für 6-stellig
Die restliche Programmierung bleibt identisch – das macht den Wechsel zwischen den Modulen besonders einfach.
Die Bibliothek kann direkt über den Bibliotheksverwalter der Arduino IDE installiert oder von GitHub heruntergeladen werden: https://github.com/jasonacox/TM1637TinyDisplay
Beispielprojekt: Level-Anzeige mit Drehpoti und mehreren TM1637-Segmentanzeigen
Im folgenden Beispielprojekt werden drei TM1637-Segmentanzeigen gleichzeitig angesteuert:
- Zwei 4-stellige Anzeigen dienen als visuelle Level-Meter (eine mit und eine ohne Dezimalpunkte),
- Eine 6-stellige Anzeige zeigt den aktuellen Wert zusätzlich als Zahl an.

Der analoge Eingang eines Drehpotentiometers wird ausgelesen, auf einen Bereich von 0–100 skaliert und in Echtzeit dargestellt.
Die Bibliothek TM1637TinyDisplay
bzw. TM1637TinyDisplay6
macht die Ansteuerung sehr einfach – unabhängig davon, ob du eine 4- oder 6-stellige Anzeige nutzt.
Beispielcode: Level-Meter mit TM1637-Segmentanzeigen
/* * Titel: Level-Meter mit mehreren TM1637-Segmentanzeigen * Beschreibung: * Dieser Sketch liest den analogen Wert eines Drehpotentiometers aus * und zeigt ihn als Balkenanzeige (Level-Meter) auf zwei 4-stelligen * und einer 6-stelligen TM1637-Segmentanzeige an. Zusätzlich wird der * Zahlenwert als Ziffernanzeige dargestellt. * * Autor: Stefan Draeger * Blogbeitrag: https://draeger-it.blog/tm1637-segmentanzeigen-im-vergleich-4-stellig-vs-6-stellig/ */ #include <TM1637TinyDisplay.h> #include <TM1637TinyDisplay6.h> // Pins für die 6-stellige Anzeige #define CLK_DSP6 5 #define DIO_DSP6 4 TM1637TinyDisplay6 display6(CLK_DSP6, DIO_DSP6); // Pins für die erste 4-stellige Anzeige #define CLK_DSP4 9 #define DIO_DSP4 8 TM1637TinyDisplay display4(CLK_DSP4, DIO_DSP4); // Pins für die zweite 4-stellige Anzeige (zum Anzeigen des aktuellen Wertes) #define CLK_DSP4_2 12 #define DIO_DSP4_2 11 TM1637TinyDisplay display4_2(CLK_DSP4_2, DIO_DSP4_2); // Helligkeit der Anzeigen (0–7) const int BRIGHTNESS = 5; void setup() { Serial.begin(9600); // Für Debug-Ausgabe (optional) // Helligkeit aller Displays setzen display6.setBrightness(BRIGHTNESS); display4.setBrightness(BRIGHTNESS); display4_2.setBrightness(BRIGHTNESS); } void loop() { // Analogen Wert vom Potentiometer einlesen (0–1023) int value = analogRead(A1); // Wert auf 0–100 skalieren int level = map(value, 0, 1023, 0, 100); // 6-stellige Anzeige: Level-Meter mit Dezimalpunkten display6.showLevel(level, true); // 4-stellige Anzeige: Level-Meter ohne Punkte display4.showLevel(level, false); // Zweite 4-stellige Anzeige: Zahlenwert anzeigen display4_2.showNumber(level); // Kleine Pause für Lesbarkeit delay(75); }