Instructions

46
"acdefg", #6
"abc", #7
"abcdefg", #8
"abcdfg", #9
]
z = [0,0,0]
ip = os.popen("hostname -I").readline()[:-2].split(".")
print("Strg+C beendet das Programm")
def za():
for i in range(3):
for s in "abcdefg":
GPIO.output(seg[s], 0)
GPIO.output(zif[i], 0)
for s in zahl[z[i]]:
GPIO.output(seg[s], 1)
time.sleep(0.001)
GPIO.output(zif[i], 1)
def blink():
for s in "abcdefg":
GPIO.output(seg[s], 0)
for k in range(3):
GPIO.output(zif[k], 0)
GPIO.output(dp, 1)
time.sleep(0.5)
GPIO.output(dp, 0)
try:
while True:
for j in ip:
for k in range(3):
z[k] = int(j.zll(3)[k])
sek = time.time()
while time.time() <= sek + 1:
za()
blink()
except KeyboardInterrupt:
GPIO.cleanup()
So funktioniert es
Große Teile des Programms werden Ihnen bekannt vorkommen. Vieles basiert auf den früheren Python-
Programmen mit der Sieben-Segment-Anzeige. Die Funktionen zum Auslesen der IP-Adresse sowie einige
Methoden der Zeichenkettenverarbeitung sind neu.
import time, os
Beim Import der Bibliotheken am Anfang wird zusätzlich das Modul os für Betriebssystemfunktionen
importiert.
zif=[16, 12, 7, 6]
for z in zif:
GPIO.setup(z, GPIO.OUT, initial=1)
Die Liste der GPIO-Anschlüsse für die vier Ziffern bleibt unverändert. Damit die vierte, nicht benutzte
Stelle der Anzeige im Programm keinen undefinierten Status haben kann, wird sie am Anfang mit initiali-
siert und ausgeschaltet.
z = [0,0,0]
Die Liste z[], in der während des Programmablaufs die darzustellenden Ziffern gespeichert werden, ent-
hält aber nur noch drei Elemente.
ip = os.popen("hostname -I").readline()[:-2].split(".")
Diese Zeile ermittelt die IP-Adresse zunächst als Zeichenfolge. Die Funktion os.popen() führt einen
beliebigen Kommandozeilenbefehl aus. Die Methode readline() liest aus diesem Ergebnis eine Zeile als
Zeichenfolge aus.
Die vierteilige IP-Adresse wird an den Punkten in vier Blöcke getrennt, die als vier einzelne Zeichen-
ketten in der Liste ip[] gespeichert werden. Dazu wird die Methode split() verwendet, die in jeder
Zeichenkette zur Verfügung steht. Sie benötigt als Parameter das Trennzeichen, an dem die Zeichenkette
aufgespaltet werden soll, in diesem Fall den Punkt. Dieses Trennzeichen selbst erscheint in keiner der
entstehenden Zeichenfolgen.
Lautet die IP-Adresse zum Beispiel
"192.168.2.124"
entsteht daraus diese Liste ip[]:
('192', '168', '2', '124')
Die vier Elemente der Liste sind weiterhin Zeichenketten, keine Zahlen.
Die Funktion za() zur Zahlenausgabe entspricht den letzten Programmen. Nur die Zeilen zur Anzeige des
Dezimalpunkts zwischen der zweiten und der dritten Ziffer bei der Uhr fallen weg.