TM1637 4-Digit-Anzeige
4-stellige 7-Segment-Anzeige mit eingebautem TM1637-Treiberchip. Statt vieler Segment-Leitungen braucht sie nur zwei Datenleitungen (CLK, DIO) - der Chip uebernimmt das Multiplexen der vier Ziffern selbst.
Stand (12.09.2026): mit der Bibliothek tm1637.py
(mcauser/microbit-tm1637) auf
echter Hardware getestet - funktioniert.
Anschluesse am Modul
| Pin (Beschriftung auf dem Modul) | Bedeutung |
|---|---|
CLK |
Takt |
DIO |
Daten (in beide Richtungen) |
VCC |
Plus |
GND |
Masse |
Die Reihenfolge der 4 Pins ist von Modul zu Modul unterschiedlich - nach der Beschriftung anschliessen, nicht nach der Position.
Konkretes Beispiel (ein tatsaechlich verwendetes Modul, Beschriftung auf
der Rueckseite von links nach rechts): GND VCC DIO CLK. Also nicht
automatisch von “erster Pin = CLK” ausgehen - immer selbst nachsehen.
Manche Module zeigen die 4 Ziffern untereinander statt nebeneinander (die Anzeige-Einheit ist auf der Platine um 90 Grad gedreht). Elektrisch und im Code macht das keinen Unterschied - die Zahl laeuft dann nur von oben nach unten statt von links nach rechts. Mit zahl-anzeigen testen, in welcher Reihenfolge und wo bei deinem Modul der Doppelpunkt sitzt.
Anschluss an den micro:bit
Anders als der WS2812B-Strip braucht die TM1637-Anzeige keine externe
Stromquelle: der Chip laeuft mit 3.3-5.5 V, der micro:bit-3V-Pin reicht.
micro:bit TM1637-Modul
+---------+ +------------+
| P1 |--------| CLK |
| P2 |--------| DIO |
| 3V |--------| VCC |
| GND |--------| GND |
+---------+ +------------+
- Bei voller Helligkeit mit allen Segmenten aller 4 Ziffern kann der Strom spuerbar werden. In den Samples ist die Helligkeit niedrig voreingestellt (3 von 0-7). Flackert die Anzeige oder startet der micro:bit neu: Helligkeit senken oder wie beim Servo/Strip eine externe 4,5-5-V-Quelle mit gemeinsamer Masse verwenden.
- Kein Level-Shifter noetig - anders als beim WS2812B ist das TM1637-Protokoll bit-gebanged und tolerant gegenueber 3,3-V-Pegeln.
Bibliothek statt Eigenbau: mcauser/microbit-tm1637
Alle Samples nutzen die fertige, micro:bit-native Bibliothek
microbit-tm1637 von Mike
Causer (MIT-Lizenz) als zweite Projektdatei tm1637.py - wie man die im
Online-Editor anlegt, steht in
docs/setup.md.
Die micro:bit-Variante bringt mehr mit als unser fruehrer Eigenbau-Treiber:
from microbit import *
from tm1637 import TM1637
tm = TM1637(clk=pin1, dio=pin2, brightness=3) # 0 (dunkel) .. 7 (hell)
tm.number(1234) # -999..9999, rechtsbuendig
tm.numbers(12, 34, colon=True) # zwei 2-stellige Zahlen + Doppelpunkt, z. B. Uhrzeit
tm.show("HELP") # Text (0-9, A-Z, Leerzeichen, - und Grad-Symbol)
tm.scroll("HALLO MICROBIT") # Text durchlaufen lassen
tm.hex(0x2A) # Hexadezimal
tm.temperature(temperature()) # mit automatischem Grad-Symbol, LO/HI bei Ueberlauf
tm.brightness(5) # Helligkeit nachtraeglich aendern
Das Protokoll (Hintergrund)
Einfacher erklaert, was CLK/DATA allgemein bedeuten und wie sich das vom WS2812B-Protokoll unterscheidet: Theorie: TM1637.
TM1637 spricht ein I2C-aehnliches, aber eigenes Protokoll: Start = DIO
faellt, waehrend CLK hoch ist. Stop = DIO steigt, waehrend CLK hoch ist.
Dazwischen werden Bytes LSB-zuerst getaktet, adressiert per Befehlsbyte
(0x40 automatische Adresse, 0xC0 Startadresse 0, 0x88 | Helligkeit
Anzeige an). Genau das erledigt tm1637.py intern - fuer die Samples reicht
der Blick auf die Bibliotheks-Methoden oben.
Samples (Lernreihenfolge)
- zahl-anzeigen/ - Grundfunktion, ein paar Zahlen zeigen
- zaehler/ - Knopf A/B zaehlen 0..9999, A+B = Reset
- stoppuhr/ - MM:SS, Start/Pause, Reset, blinkender Doppelpunkt
Masse fuers CAD (spaeter): ../../../hardware/output/tm1637-4digit/