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 | 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:
- Raspberry Pi Pico: 4-fach 7-Segment-Anzeige programmieren (TM1637)
- Raspberry Pi Pico: Stoppuhr mit Anzeige (TM1637)
- Raspberry Pi Pico W: WLAN-Stoppuhr mit Anzeige (TM1637)
- Raspberry Pi Pico: Countdown mit Zeitanzeige (TM1637)
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)