Instructions
44
try:
while True:
zeit = time.localtime()
In jedem Durchlauf wird, unabhängig davon, wie lange er dauert, die aktuelle Zeit in das Objekt zeit
geschrieben. Dazu wird die Funktion time.localtime() aus der time-Bibliothek verwendet. Das Ergebnis
ist eine Datenstruktur, die aus verschiedenen Einzelwerten besteht.
h = zeit.tm_hour
m = zeit.tm_min
Die beiden für die Digitaluhr relevanten Werte, Stunden und Minuten, werden aus der Struktur in die
Variablen h und m geschrieben.
Die folgenden Zeilen ermitteln aus der Zeitangabe die einzelnen Ziffern für die Anzeige und schreiben
diese in die Liste z[], aus der sie dann von der Funktion za() gelesen werden.
z[0] = int(h / 10)
Die erste Ziffer der Anzeige zeigt die Zehnerstelle der Stunden. Dazu wird die aktuelle Stundenangabe
aus der Variablen h durch 10 geteilt und der Ganzzahlwert ermittelt. Das Ergebnis kann 0, 1 oder 2 sein.
z[1] = h % 10
Die zweite Ziffer der Anzeige zeigt die Einerstelle der Stunden. Diese wird mit dem Modulo-Operator %
errechnet. Modulo ermittelt den bei einer Ganzzahldivision entstehenden unteilbaren Rest. Bei einer
Division durch 10 ergibt der Modulo-Operator immer die letzte Ziffer des Dividenden. Da immer Ganz-
zahlwerte errechnet werden, ist keine int() Funktion nötig.
z[2] = int(m / 10)
z[3] = m % 10
Auf die gleiche Weise werden an die dritte und die vierte Stelle der Liste z[] die beiden Ziffern der aktu-
ellen Minutenangabe geschrieben.
while time.localtime().tm_min == m:
za()
Solange die aktuelle Minute noch gleich der gespeicherten Minute ist, wird die Funktion za() zur Zah-
lenausgabe ständig wiederholt. Springt die Minutenangabe auf die nächste Minute um, beginnt die
Hauptschleife von Neuem, ermittelt die Ziffern der aktuellen Uhrzeit und lässt diese dann wieder bis zur
nächsten Minute anzeigen.
Digitaluhr automatisch starten
Dieses Programm kann aus dem RaspberryPi eine Digitaluhr machen, die automa-
tisch startet, ohne dass der RaspberryPi eine Tastatur oder einen Monitor braucht.
Ohne Tastatur und Monitor muss das Programm automatisch gestartet werden,
da der Benutzer weder Python-Shell noch Kommandozeile aufrufen kann.
Öffnen Sie im Dateimanager im Verzeichnis /etc/xdg/lxsession/LXDE-
pi mit dem Texteditor die Textdatei autostart. Da diese Datei nur mit
Superuserrechten bearbeitet werden kann, wechseln Sie mit dem Dateimanager
in das Verzeichnis und wählen dann im Menü Werkzeuge / Ausführen eines
Befehls im aktuellen Ordner... Geben Sie hier die abgebildete Befehlsfolge ein.
Fügen Sie am Ende der Datei die abgebildete Zeile zum Aufruf des
Programms mit dem Python-Kommandozeileninterpreter hinzu und
setzen Sie vor die Zeile point-rpi ein @-Zeichen.
Damit wird kurz nach dem Booten des RaspberryPi die aktuelle
Uhrzeit automatisch auf der Sieben-Segment-Anzeige angezeigt.
Um den automatischen Start abzuschalten, löschen Sie die Zeile
wieder, oder Sie tragen ganz am Anfang der Zeile ein #-Zeichen ein:
# @python3 16uhr.py
Die automatisch gestartete Uhr lässt sich nicht über die Tastenkom-
bination [Strg]+[C] beenden, da kein Python-Shell-Fenster existiert.
autostart Datei mit Superuserrechten bearbeiten
Der Autostart-Aufruf für die Uhr










