Raspberry Pi Pico: Digitale Uhr mit Anzeige (TM1637)

Wenn man einen Raspberry Pi Pico mit einer 4-fach 7-Segment-Anzeige vom Typ TM1637 hat, dann wäre es denkbar eine digitale Uhr daraus zu bauen, die die aktuelle Uhrzeit anzeigt. Also Stunden und Minuten.

Aufbau und Bauteile

Raspberry Pi Pico: 4-fach 7-Segment-Anzeige programmieren (TM1637)

Raspberry Pi Pico TM1637
Pin 38 GND GND
Pin 36 VCC +3,3V VCC
Pin 27 GPIO 21 CLK
Pin 26 GPIO 20 DIO

Schnell und einfach alle Bauteile zusammen bestellen

MicroPython-Bibliothek für TM1637

Zur Ansteuerung der 7-Segment-Anzeige TM1637 ist eine externe Bibliothek erforderlich, die heruntergeladen und mit dem Dateinamen „tm1637.py“ auf dem Raspberry Pi Pico gespeichert werden muss.

Programmcode

Im folgenden Programmcode werden zuerst Bibliotheken geladen, die Anzeige, sowie die interne Echtzeituhr (RTC) und ein Timer initialisiert.

Im Programmcode wird die Uhrzeit von der internen Echtzeituhr (RTC) mitgeführt. Das Auslesen der Echtzeituhr und die Aktualisierung der Anzeige erfolgt über eine Funktion, die von einem Timer aufgerufen wird.
Die Periode des Timers ist auf 60.000 Millisekunden (ms) eingestellt, was 60 Sekunden bzw. 1 Minute entspricht. Zu einer einfachen Uhrzeit-Anzeige ist diese Aktualisierungshäufigkeit sicherlich ausreichend. Man kann die Zeit auch verkürzen, dann würde die Uhrzeit öfter nachgeführt. Dann würde Uhrzeit eine kürzere Zeitspanne nachgehen. Zum Beispiel auf einen Wert von 30.000 Millisekunden (ms), was 30 Sekunden entspricht.

# Bibliotheken laden
from machine import Pin, RTC, Timer
import tm1637

# Display initialisieren
display = tm1637.TM1637(clk=Pin(21), dio=Pin(20))

# Echtzeituhr im Mikrocontroller initialisieren
rtc = RTC()

# Funktion: Datum und Uhrzeit lesen und ausgeben
def outputDisplay(value=0):
    datetime = rtc.datetime()
    print('Aktuelle Uhrzeit: %02d:%02d' % (datetime[4], datetime[5]))
    display.numbers(datetime[4], datetime[5])

# Initialisierung Timer für die Uhrzeit (60000 ms = 60 Sekunden = 1 Minute)
clock = Timer(period=60000, mode=Timer.PERIODIC, callback=outputDisplay)

# Display einstellen
outputDisplay()

Ideen für Erweiterungen

Diese Lösung hat verschiedene Nachteile. Der erste Punkt ist die Frage, woher der Raspberry Pi Pico die aktuelle Uhrzeit bekommt? Wenn der folgende Programmcode ausgeführt wird und der Raspberry Pi Pico mit der Thonny Python IDE auf einem Host-Computer verbunden ist, dann bezieht der Pico die aktuelle Uhrzeit vom Host-Computer mit Hilfe der Thonny Python IDE. Eine Lösung dafür wäre, den Raspberry Pi Pico zusammen mit einer Batterie-betriebenen externen RTC, wie dem DS3231, zu betreiben. Dort müsste man die Uhrzeit nur einmal richtig einstellen.
Alternativ könnte man einen Raspberry Pi Pico W verwenden, der sich bei einer WLAN-Verbindung die NTP-Zeit von einem Zeitserver zieht. Das Problem ist, die Zeitzone und die Zeitumstellung. Von Normalzeit auf Sommerzeit und wieder zurück.

Ein vergleichsweise dummer Wecker hat zu diesem Zweck Einstellmöglichkeiten vorgesehen:

  • Uhrzeit einstellen
  • Weckzeit einstellen
  • Normalzeit und Winterzeit umstellen

Vielleicht versuchst Du Dich einfach mal an einer allumfassenden und intelligenten Lösung, die sich universell verwenden lässt. Viel Spaß dabei.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren