Arduino con display a 7 segmenti LED (TM1637)

FunduinoUltimo aggiornamento il

Ziffern anzeigen, blinken lassen und einen Timer bauen

Eine vierstellige 7-Segment-Anzeige mit TM1637-Chip braucht nur zwei Datenleitungen – und liefert dafür eine gut ablesbare Zahlenanzeige für Uhren, Zähler oder Messwerte.

In drei Teilen zeigst du zuerst eine einzelne Ziffer an, dann eine vierstellige Zahl im Blinktakt und zum Schluss einen laufenden Timer.

Vierstellige 7-Segment-Anzeige mit TM1637 am Arduino, eine Ziffer leuchtet
Eine einzelne Ziffer auf der 7-Segment-Anzeige

Das Modul und seine Farben

In dieser Anleitung steuerst du mit dem Arduino eine vierstellige Siebensegmentanzeige an, die einen TM1637-Chip verwendet. Das Modul gibt es in mehreren Farben.

An der Seite des Moduls steht eine Bezeichnung, an der sich die Farbe ablesen lässt:

  • Blau: 5643BB
  • Grün: 5643GB
  • Rot: 5643BH
  • Weiß: 5643BW
  • Gelb: 5643BY
Vierstellige 7-Segment-Anzeige mit TM1637 am Arduino, eine Ziffer leuchtet
Eine einzelne Ziffer auf der 7-Segment-Anzeige

Bibliothek installieren

Gib im Bibliotheksmanager der Arduino-Software den Suchbegriff TM1637 ein. Es erscheinen gleich mehrere Bibliotheken – wir verwenden hier „TM1637“ von Avishay Orpaz. Nach der Installation kann es mit dem Programmieren losgehen.

Teil 1: Eine einzelne Ziffer anzeigen

Verkabele die Anzeige so:

  • 5V der Anzeige an 5V des Arduino
  • GND an GND
  • CLK an Pin 4
  • DIO an Pin 5

Ein paar Erklärungen zu den Befehlen im Sketch:

  • TM1637Display display(CLK, DIO); legt das Display mit den zuvor festgelegten Pins an.
  • display.setBrightness(7); setzt die Helligkeit auf das Maximum (möglich sind 0 bis 7).
  • display.clear(); löscht die Anzeige, bevor etwas ausgegeben wird – die LEDs gehen dabei aus.
  • display.showNumberDec(5, false, 1, 0); zeigt die Ziffer 5 an der ersten Stelle an. Die vier Werte bedeuten: die anzuzeigende Zahl, keine führenden Nullen, nur eine Stelle verwenden, Position 0 (also die erste Stelle).
Teil 1: Eine einzelne Ziffer anzeigen
#include <TM1637Display.h>

// Definiere die Pins für CLK und DIO
#define CLK 4
#define DIO 5

// Erstelle ein Display-Objekt
TM1637Display display(CLK, DIO);

void setup()
{
  // Setze die Helligkeit der Anzeige (0 bis 7)
  display.setBrightness(7);

  // Lösche die Anzeige
  display.clear();

  // Zeige eine Ziffer an (hier die 5)
  display.showNumberDec(5, false, 1, 0);
}

void loop()
{
  // Im loop ist nichts weiter zu tun: Das Display wurde bereits im setup gesetzt.
}

Teil 2: Vier Ziffern anzeigen und blinken lassen

Den Sketch aus Teil 1 musst du dafür nur wenig anpassen. Mit display.showNumberDec(5678); zeigst du die ganze Zahl an, ein delay hält sie eine Sekunde lang.

Danach löscht der Sketch die Anzeige und wartet 500 Millisekunden – dadurch blinkt die Zahl.

Vierstellige 7-Segment-Anzeige mit TM1637 am Arduino, alle Stellen leuchten
Alle vier Stellen zeigen die Zahl 5678
Teil 2: Vier Ziffern anzeigen und blinken lassen
#include <TM1637Display.h>

#define CLK 4
#define DIO 5

TM1637Display display(CLK, DIO);

void setup()
{
  display.setBrightness(7);
  display.clear();
}

void loop()
{
  // Zeige die Zahl 5678 für eine Sekunde
  display.showNumberDec(5678);
  delay(1000);

  // Lösche die Anzeige für 500 Millisekunden - dadurch blinkt sie
  display.clear();
  delay(500);
}

Teil 3: Einen Timer programmieren

Mit einer weiteren kleinen Änderung wird daraus ein Timer. Oberhalb von setup legst du die Variable x mit dem Startwert 0 an.

Im loop wird dieser Wert angezeigt und danach mit der kleinen Rechnung x = x + 1 um eins erhöht. Jeder Durchlauf dauert zusammen eine Sekunde – 800 Millisekunden mit Anzeige, 200 ohne.

Teil 3: Einen Timer programmieren
#include <TM1637Display.h>

// Startwert des Timers
int x = 0;

#define CLK 4
#define DIO 5

TM1637Display display(CLK, DIO);

void setup()
{
  display.setBrightness(7);
  display.clear();
}

void loop()
{
  // Aktuellen Zählerstand anzeigen
  display.showNumberDec(x);
  delay(800);

  // Zähler um 1 erhöhen
  x = x + 1;

  // Kurz löschen, damit der Wechsel sichtbar wird
  display.clear();
  delay(200);
}
Valuta le istruzioni

Commenti

Fare una domanda o condividere un'esperienza

Scrivici se qualcosa non funziona. Indica la tua scheda e il messaggio di errore.

Controlliamo ogni commento prima della pubblicazione. Il tuo indirizzo e-mail rimane presso di noi.