Erfahre, wie du ein TM1637 7-Segment-Display mit dem Raspberry Pi Pico verbindest, Text und Zahlen anzeigst und sogar die aktuelle Uhrzeit darstellst. Entdecke nützliche Beispiele und Projekte!

Was brauchst du?
Schritt 1: Anschluss des TM1637 an den Raspberry Pi Pico
Um das TM1637-Display mit dem Raspberry Pi Pico zu verbinden, benötigen wir nur zwei GPIO-Pins: einen für die Clock (CLK) und einen für die Daten (DIO). Es ist wichtig zu beachten, dass der TM1637 kein I2C-Modul ist, sondern über ein eigenes Kommunikationsprotokoll arbeitet, das auf der seriellen Übertragung von Daten basiert. In diesem Beispiel verwenden wir Pin 0 für die Datenleitung (DIO) und Pin 1 für die Clock-Leitung (CLK).
Verbindungen herstellen:
- CLK (Clock): Verbinde den Pin 1 des Raspberry Pi Pico mit dem CLK-Pin des TM1637-Displays.
- DIO (Daten): Verbinde den Pin 0 des Raspberry Pi Pico mit dem DIO-Pin des TM1637-Displays.
- VCC (Stromversorgung): Verbinde den VCC-Pin des TM1637 mit 3.3V des Raspberry Pi Pico.
- GND (Masse): Verbinde den GND-Pin des TM1637 mit GND des Raspberry Pi Pico.
Da der TM1637 kein I2C-Protokoll verwendet, erfolgt die Kommunikation direkt über die beiden Pins CLK und DIO. Dieser direkte Anschluss ist einfach und benötigt keine speziellen I2C- oder SPI-Bibliotheken, was den Anschluss und die Programmierung unkompliziert macht.
Schritt 2: Importieren der TM1637-Bibliothek
Um das TM1637-Display in deinem MicroPython-Projekt zu verwenden, musst du die Bibliothek tm1637.py
herunterladen und auf dem Pi Pico speichern. Die Bibliothek kannst du direkt von GitHub herunterladen:
Nach dem Download der Datei speicherst du sie im selben Verzeichnis wie dein MicroPython-Skript. Um die Bibliothek zu verwenden, importierst du sie einfach am Anfang deines Programms:
from tm1637 import TM1637
Damit kannst du dann auf alle Funktionen der TM1637-Bibliothek zugreifen, um dein Display zu steuern und anzupassen.
Schritt 3: Text und Zahlen anzeigen
Das TM1637-Display bietet eine einfache Möglichkeit, Zahlen und Text anzuzeigen. In diesem Abschnitt werden wir verschiedene Methoden durchgehen, um Text und Zahlen auf dem Display darzustellen, indem wir den TM1637-Treiber verwenden. Der folgende Code demonstriert, wie man das Display mit Zahlen, Text und anderen Formaten steuert.
import time
from machine import Pin
from tm1637 import TM1637
# Initialisiere das Display (anpassen, je nach Verbindungen)
clk = Pin(1)
dio = Pin(0)
tm = TM1637(clk=clk, dio=dio)
# Maximale Helligkeit setzen
tm.brightness(7)
print("Helligkeit auf Maximum gesetzt")
# Teste das Anzeigen von Zahlen
print("Teste Anzeige der Zahl 1234")
tm.number(1234)
time.sleep(2)
# Teste das Anzeigen einer negativen Zahl
print("Teste Anzeige der Zahl -56")
tm.number(-56)
time.sleep(2)
# Teste das Anzeigen einer Temperatur
print("Teste Anzeige der Temperatur 23°C")
tm.temperature(23)
time.sleep(2)
# Teste die Helligkeitsstufen
for brightness in range(8):
print(f"Setze Helligkeit auf {brightness}")
tm.brightness(brightness)
time.sleep(0.5)
# Teste das Scrollen von Text
print("Teste das Scrollen von 'Hallo'")
tm.scroll('Hallo', delay=250)
time.sleep(2)
# Teste das Anzeigen von Hexadezimalwerten
print("Teste Anzeige von Hex-Werten: 0x1A2F")
tm.hex(0x1A2F)
time.sleep(2)
# Teste das Löschen des Displays
print("Lösche Display")
tm.write([0, 0, 0, 0])
Erklärung des Codes
- Display Initialisierung: Wir verbinden das Display über die Pins CLK und DIO und setzen das Display mit
tm = TM1637(clk, dio)
in Betrieb. - Helligkeit: Mit
tm.brightness(7)
stellen wir die Helligkeit des Displays auf das Maximum. - Anzeige von Zahlen: Die Methode
tm.number(1234)
zeigt die Zahl 1234 an, währendtm.number(-56)
eine negative Zahl darstellt. - Temperatur: Mit
tm.temperature(23)
wird die Zahl 23 zusammen mit dem Gradzeichen für Celsius angezeigt. - Helligkeitseinstellungen: In einer Schleife passen wir die Helligkeit des Displays von 0 bis 7 an.
- Scrollen von Text:
tm.scroll('Hallo', delay=250)
lässt den Text Hallo über das Display scrollen. - Hexadezimalwerte: Mit
tm.hex(0x1A2F)
zeigen wir einen Hex-Wert auf dem Display an. - Display zurücksetzen: Schließlich löschen wir das Display mit
tm.write([0, 0, 0, 0])
.
Schritt 4: Anzeige der aktuellen Uhrzeit auf dem TM1637
Mit dem folgenden Code kannst du die aktuelle Uhrzeit vom internen RTC des Raspberry Pi Pico auf dem TM1637-Display anzeigen. Der Raspberry Pi Pico verfügt über einen integrierten RTC (Real-Time Clock), der die aktuelle Uhrzeit speichert. Um die Uhrzeit anzuzeigen, holen wir uns die Stunden und Minuten und zeigen sie auf dem Display an, wobei der Doppelpunkt automatisch zwischen den Stunden und Minuten gesetzt wird.
import time
from machine import Pin, RTC
from tm1637 import TM1637
# Pins für den TM1637
clk = Pin(1, Pin.OUT) # Beispiel-Pin für CLK
dio = Pin(0, Pin.OUT) # Beispiel-Pin für DIO
# Initialisiere das TM1637-Display
tm = TM1637(clk, dio)
# Initialisiere den internen RTC des Raspberry Pi Pico
rtc = RTC()
while True:
# Hole die aktuelle Uhrzeit vom internen RTC
time_tuple = rtc.datetime()
hours = time_tuple[4]
minutes = time_tuple[5]
# Zeige die Uhrzeit an mit Doppelpunkt
tm.numbers(hours, minutes, colon=True)
time.sleep(1)
Erklärung des Codes
- RTC Initialisierung: Zu Beginn wird der interne RTC des Raspberry Pi Pico mit
rtc = RTC()
initialisiert. Der RTC speichert die aktuelle Uhrzeit und wird im Code verwendet, um diese abzurufen. - Uhrzeit abrufen: Die Uhrzeit wird mit
rtc.datetime()
als Tuple zurückgegeben. Dieses Tuple enthält Informationen wie Jahr, Monat, Tag, Stunden, Minuten, Sekunden und Mikrosekunden. Wir extrahieren die Stunden und Minuten aus diesem Tuple und speichern sie in den Variablenhours
undminutes
. - Anzeige der Uhrzeit: Mit der Methode
tm.numbers()
wird die Uhrzeit auf dem TM1637-Display angezeigt. Dercolon=True
-Parameter sorgt dafür, dass der Doppelpunkt zwischen den Stunden und Minuten gesetzt wird. - Warten: Die Anzeige wird jede Sekunde aktualisiert, da
time.sleep(1)
am Ende der Schleife eingefügt wurde. Dadurch bleibt die Uhrzeit immer aktuell.
Mit diesem einfachen Setup kannst du die aktuelle Uhrzeit auf dem TM1637-Display anzeigen und regelmäßig aktualisieren.
Fazit
Das TM1637-Display ist eine einfache und kostengünstige Möglichkeit, Zahlen und Texte auf dem Raspberry Pi Pico anzuzeigen. Es ist ideal für Projekte, bei denen Platz und Energieverbrauch wichtig sind. Im Vergleich zu LCD- oder OLED-Displays bietet es eine einfache Ansteuerung und eignet sich besonders gut für die Anzeige von Uhrzeiten, Zählerständen oder Temperaturen.
Obwohl es weniger flexibel als größere Displays ist, bietet das TM1637 eine schnelle und unkomplizierte Lösung für einfache Anzeigeaufgaben. Weitere spannende Projekte mit dem Raspberry Pi Pico findest du auf unserem Blog. Hier geht’s zu weiteren Raspberry Pi Pico Projekten.