TM1637 Segmentanzeigen im Vergleich: 4-stellig vs. 6-stellig
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. https://youtu.be/SukHrc6LOA0 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.
Die 4-stellige TM1637-Anzeige
Die klassische 4-stellige Anzeige ist sehr weit verbreitet – gerade in Arduino- und ESP-Projekten.
4-digit LED Display
4-digit LED Display Rückseite
4-digit Display v1
4-digit Display v1 Rückseite 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.
4fach 7-Segmentanzeige am ESP32 D1 R32
Schaltung - Lichtschranken mit Segmentanzeige
CPU Temperatur auf der 4fach Segmentanzeige
Temperaturanzeige des NTC-Widerstandes am RTC Shield von Open-Smart 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.
6-digit LED Display
6-digit LED Display Rückseite 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
Merkmal4-stellig TM16376-stellig TM1637Anzahl Zeichen46Doppelpunkt (Colon)✅ Ja❌ NeinDezimalpunkte pro Stelle❌ Nein✅ JaAnzeige von Uhrzeit✅ Ideal⚠ Möglich, aber ohne DoppelpunktAnzeige von Kommazahlen❌ Umständlich✅ OptimalAnzeige von Text✅ Einfach✅ EinfachAnsteuerung 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 // für 4-stellige Anzeige #include // 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.
Schaltung - Segmentanzeigen als Level-Meter mit Drehpotentiometer 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 #include // 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); } Read the full article












