Instructions
39
So funktioniert es
Die Initialisierung der GPIO-Pins und die Liste zur Darstellung der Ziffern auf den sieben Segmenten der
Anzeige werden aus dem letzten Programm übernommen.
taste1=18
GPIO.setup(taste1, GPIO.IN, GPIO.PUD_DOWN)
taste2=4
GPIO.setup(taste2, GPIO.IN, GPIO.PUD_DOWN)
Anschließend werden die GPIO-Pins der beiden Taster initialisiert. Der Parameter GPIO.PUD_DOWN bei der
Initialisierung der GPIO-Pins für die Taster schaltet den eingebauten Pulldown-Widerstand ein. Dadurch
kann man sich den externen Pulldown-Widerstand sparen.
Das ganze Programm läuft jetzt in einer Endlosschleife, da der Countdown durch Drücken einer der
Taster immer wieder wiederholt werden kann.
while True:
t=datetime.date(2019, 12, 24) - datetime.date.today()
x=t.days
z[0]=int(x/1000)
z[1]=int(x%1000/100)
z[2]=int(x%100/10)
z[3]=int(x%10)
if GPIO.input(taste2)==1:
break
Die Endlosschleife und auch alle untergeordneten Schleifen prüfen in jedem Durchlauf, ob die Taste 2
gedrückt ist. Ist dies der Fall, wird die Schleife über eine break Anweisung abgebrochen.
while GPIO.input(taste1)==0:
za()
if GPIO.input(taste2)==1:
break
Nachdem die Anzahl der Tage bis Weihnachten berechnet wurde, wird diese Zahl so lange auf der
Sieben-Segment-Anzeige angezeigt, wie die Taste 1 nicht gedrückt ist. Auch diese Schleife fragt die Taste
2 ab. Ist diese gedrückt, wird die Schleife abgebrochen. Danach folgt aber die nächste Schleife. Um alle
Schleifen bis einschließlich der äußeren Endlosschleife abzubrechen, drücken Sie die Taste - ähnlich wie
einen Reset-Taster - ein paar Millisekunden lang.
while x>=0:
z[0]=int(x/1000)
z[1]=int(x%1000/100)
z[2]=int(x%100/10)
z[3]=int(x%10)
for j in range(100):
za()
x-=1
if GPIO.input(taste2)==1:
break
Wenn die Taste 1 gedrückt wurde, wird die Schleife regulär beendet und die nächste Schleife folgt, die
den Countdown bis zur 0 herunterzählt. Auch sie kann jetzt durch Drücken der Taste 2 abgebrochen
werden.
while GPIO.input(taste1)==0:
za()
if GPIO.input(taste2)==1:
break
Zum Schluss stehen alle vier Ziffern auf 0. Eine weitere Schleife zeigt diese Zahl an, bis die Taste 1
gedrückt wird. In diesem Fall startet die Endlosschleife wieder von vorne mit der Berechnung der bis
Weihnachten verbleibenden Tage.










