TM1637 4-Digit-Display am Arduino anschließen und ansteuern – Schritt für Schritt
Inhaltsverzeichnis
- Benötigte Komponenten
- Beschreibung
- Funktionsweise
- Pinbelegung
- Anschlussplan
- Ansteuerung mit Arduino
- Fehlerdiagnose
Benötigte Komponenten
- Arduino UNO R3 kompatibles Board
- TM1637 Modul (Weiss, Blau, Rot, Grün, Gelb)
- 4x Buchse-Stecker Jumperkabel
Beschreibung
Das TM1637-Modul ist ein kompaktes 4-stelliges 7-Segment-LED-Display, das häufig in Arduino-Projekten zur Anzeige von Zahlen, Zeiten oder Zählerständen eingesetzt wird. Durch den integrierten TM1637-Treiberchip entfällt die direkte Ansteuerung der einzelnen Segmente, was den Hardware- und Programmieraufwand deutlich reduziert.
Das Modul benötigt nur vier Anschlüsse: Versorgungsspannung (5V), GND sowie die beiden Datenleitungen CLK (Clock) und DIO (Data). Dadurch ist es besonders übersichtlich zu verdrahten und eignet sich hervorragend für Einsteiger.
Funktionsweise
Die Kommunikation zwischen Arduino und TM1637 erfolgt über ein zweidrahtiges serielles Protokoll, das dem I²C-Prinzip ähnelt, jedoch herstellerspezifisch ist. Über die CLK-Leitung gibt der Arduino den Takt vor, während über DIO die Daten übertragen werden.
Der TM1637-Chip übernimmt intern die Multiplex-Ansteuerung der Segmente sowie die Helligkeitssteuerung des Displays. Der Arduino sendet lediglich die darzustellenden Zahlen oder Symbole, wodurch der benötigte Code sehr kompakt bleibt.
Dank passender Bibliotheken lässt sich das Display schnell initialisieren und mit wenigen Befehlen steuern – ideal für einfache Anzeigen in Mikrocontroller-Projekten.
Pinbelegung
| Display | Arduino | Funktion |
| VCC | 5V | 3,3V-5V DC |
| GND | GND | Masse |
| CLK | Digital Pin 3 | Taktsignal |
| DIO | Digital Pin 2 | Bidirektionale Datenleitung |
Anschlussplan

Ansteuerung mit Arduino
Benötigte Bibliothek
Arduino-IDE → Bibliotheksverwalter → suchen nach:
„TM1637Display“ von Avishay Orpaz
Grundfunktionen
Helligkeit einstellen (stufenweise von 0 bis 7)
display.setBrightness(7); // Helligkeit (0–7)
Ganze Zahl anzeigen
display.showNumberDec(1234); // Zahl anzeigen
Führende Nullen werden angezeigt, 42 -> 0042
display.showNumberDec(42, true); // → 0042
Anzeige löschen, schaltet alle Segmente aus
display.clear(); // Anzeige löschen
Doppelpunkte ansteuern
display.showNumberDecEx(1234, 0b01000000, true); // Doppelpunkt EIN
Doppelpunkt blinken lassen
display.showNumberDecEx(1234, 0, true); // aus
display.showNumberDecEx(1234, 0b01000000, true); // an
Buchstaben und Symbole
- Einige Symbole und Buchstaben lassen sich darstellen
- Typische Beispiele: HELP, COOL, FAIL, ---- (Ladeanzeige)
uint8_t data[] = {
SEG_H, SEG_E, SEG_L, SEG_L
};
display.setSegments(data);
Beispiel-Sketch „Nervöser Zähler“
- zählt von 0000 bis 9999
- der Doppelpunkt blinkt wie ein Herzschlag
- bei 1337 bleibt er kurz stehen
#include <TM1637Display.h>
#define CLK 3
#define DIO 2
TM1637Display display(CLK, DIO);
int counter = 0;
bool colonOn = false;
void setup() {
display.setBrightness(7);
}
void loop() {
// Doppelpunkt blinken lassen
colonOn = !colonOn;
display.showNumberDecEx(
counter,
colonOn ? 0b01000000 : 0, // Doppelpunkt AN/AUS
true
);
// Easter Egg ?
if (counter == 1337) {
delay(2000); // kurz feiern
}
counter++;
if (counter > 9999) counter = 0;
delay(300);
}
Fehlerdiagnose
❌ Dezimalpunkt geht nicht
➡️ normal, dieses Modul hat die DP-LEDs nicht angeschlossen
❌ Anzeige bleibt dunkel
➡️ VCC/GND vertauscht oder falsche Pins
❌ Flackert
➡️ zu lange Kabel → kürzer halten