TM1637 mit Arduino ansteuern

TM1637 4-Digit-Display am Arduino anschließen und ansteuern – Schritt für Schritt

Inhaltsverzeichnis

Benötigte Komponenten

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

TM1637-Anschluss_Steckplatine

 

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

 

Schlagworte: Arduino, Anleitung

Die mit einem * markierten Felder sind Pflichtfelder.