Bildbox 1 (klick hier)

Digitaluhr mit dem
Pico-RTC-DS3231 Modul
(Anzeige auf pico Display)

Hardware

- Raspberry Pi Pico
- Pico-RTC-DS3231 Modul
- Pico Display
- Micro USB Kabel

Die Ausgabe von weiteren 16 Euro für das präzise Pico-RTC Uhr Modul werden Sie ganz bestimmt nicht bereuen. Ich werde Ihnen in diesem Projekt zeigen, wie damit eine kleine Digitaluhr realisiert werden kann. Das Pico-RTC-DS3231 ist ein RTC-Erweiterungsmodul, das speziell für den Raspberry Pi Pico entwickelt wurde. Es enthält den hochpräzisen RTC-Chip DS3231, einen Pufferbatteriehalter und nutzt den I2C-Bus zur Kommunikation. Dank des stapelbaren Designs können mehrere externe Sensoren angeschlossen werden. Oder wie in unserem Fall dass Pico Display zur Anzeige.

Bevor der Quelltext für die Ausgabe der Zeit eingegeben werden kann, muss der RTC-Chip einmalig (oder nach Batterietausch) programmiert werden. Dafür bietet der chinesische Hersteller Waveshare ein Script in C oder Python an, mit dem Datum, Uhrzeit und Wochentag gesetzt werden. Dieses Script, angepasst von mir auf deutsche Wochentage, können Sie hier downloaden.

ds3231 in betrieb nehmen

Wie oben bereits erwähnt, können der Pico, das RTC Modul und das Pico Display direkt übereinander 'gestapelt' werden (natürlich im ausgeschalteten Zustand). Auf dem Pico wird wieder die Firmware (siehe die vorigen Projekte) benötigt. Falls die schon vorhanden ist, können Sie den Pico jetzt mit dem Micro-USB Kabel verbinden und Thonny öffnen. Das herunter geladenene und entpackte Script 'ds3231.py' wird geöffnet. Bevor (!) Sie es ausführen, ändern Sie die Zeilen 27, 78 und 80, wie in den beiden unteren Bildern gezeigt. Geben Sie bei der Uhrzeit z.B. einen Wert in den nächsten 5 Minuten ein (damit Sie nicht unter Zeitdruck geraten). Dann den Wochentag und das aktuelle Datum. Speichern Sie das Script ohne es auszuführen. Schauen Sie nun auf dem Rechner oder dem Smartphone auf die Zeitanzeige mit den genauen Sekunden und starten das Script sekundengenau.


Bei der Ausführung wird in der unteren Kommandozeile von Thonny die gesetzte Zeit, Tag und Datum ausgegeben. Der RTC Chip ist damit fertig programmiert. Starten Sie das Script nicht erneut ohne die Zeit neu anzugeben, denn sonst würden Sie ja in der 'Vergangenheit landen'. Die vorhandenen Werte bleiben aufgrund der Pufferbatterie auch beim Ausschalten des Pico erhalten und werden auch 'sekundengenau weitergezählt'. Das ist ja gerade der Sinn und Zweck des RTC Moduls.

script zur zeitanzeige

Zunächst werden das Display initialisiert (Zeilen 1 bis 6), das Display gelöscht (Zeilen 8 bis 13) und die I2C-Ports zugewiesen (Zeilen 15 bis 17). Achten Sie darauf, dass bei Paste&Copy in Zeile 1 und auch später bei den Funktionsdefinitionen keine 'unerlaubten' Einrückungen entstehen.
Die Zeilen 18 bis 21 lassen wir frei und fügen anschließend wie im vorhergehenden Projekt die Zeilen 22 bis 118 mit der angepassten Zeichensatz-Map ein. Wenn Sie die noch nicht aus dem vorigen Projekt haben, laden Sie sie hier jetzt herunter, entpacken diese und fügen die Zeilen im Script ein. Der Grund für die geänderte Zeichensatz-Map ist: Der originale Zeichensatz gefällt mir einfach nicht!

Weiter geht es mit der Eingabe der Funktion 'printchar' in Zeile 120 bis 143.
Achten Sie bei der Eingabe wieder auf die 'notwendigen' Einrückungen um jeweils 4 Leerzeichen, wie sie die Python Syntax verlangt.

Es folgt jetzt noch die Funktion 'printstring' in den Zeilen 145 bis 154.
In den Zeilen 156 bis 176 wird die 'class ds3231()' definiert.
Im sich jetzt anschließenden Haupteil werden noch die Monatsnamen auf deutsch gesetzt und die Variable 'rts' sowie 's_old' definiert. Die Variable 's_old' sorgt nachher in der 'while'-Schleife dafür, dass eine neue Zeitanzeige nur erfolgt, wenn beim Aufruf 's = rtc.read_time()' diese nicht mehr mit 's_old' übereinstimmt. Denn so langsam ist unser Controler ja nun auch nicht.
So nun noch die 'while'-Schleife in den Zeilen 186 bis 203 und dann ist es geschafft. In diesem Teil wird festgelegt, was auf dem Display ausgegeben werden soll. Zu Erklärung habe ich deshalb Kommentarzeilen eingefügt. So ist es leicht möglich andere Anzeigen nach eigenen Vorstellungen zu wählen.
Fertig.

Jetzt läuft unser Programm. Hier finden Sie wieder den Link zum Download des kompletten Quelltextes entsprechend der Beschreibung.


Viel Spass und Erfolg beim Ausprobieren.


Zurück