Instructions
53
z[1] = int(zeit % 100 / 10)
z[2] = int(zeit % 10)
z[3] = int(zeit * 10 % 10)
while int((time.time() - start) * 10 % 10) == z[3]:
za()
while GPIO.input(k1)==0:
pass
while GPIO.input(k1)==1:
za()
while GPIO.input(k1)==0:
pass
except KeyboardInterrupt:
GPIO.cleanup()
So funktioniert es
Das Programm basiert auf bereits bekannten Elementen, auch die Initialisierung der GPIO-Pins für die
Sieben-Segment-Anzeige läuft wie an den vorherigen Tagen.
k1=4
GPIO.setup(k1, GPIO.IN)
Zusätzlich zu den GPIO-Pins der Sieben-Segment-Anzeige wird ein Pin als Eingang ohne Pulldown-Wider-
stand für den Sensorkontakt initialisiert.
try:
while True:
z = [0,0,0,0]
while GPIO.input(k1)==1:
za()
Da ein Sensorkontakt beim Berühren auf Low-Pegel springt, läuft diesmal die erste while-Schleife inner-
halb der Endlosschleife so lange, wie der Eingang k1 High-Pegel liefert.
Da in dieser Programmversion keine drei verschiedenen Tasten für Start, Stopp und Reset, sondern nur
ein Sensor verwendet wird, muss verhindert werden, dass eine längere Berührung mehrere Aktionen
hintereinander auslöst.
while GPIO.input(k1)==0:
pass
Dazu läuft eine weitere Schleife so lange, wie der Eingang k1 Low-Pegel liefert, der Sensorkontakt also
berührt wird. Innerhalb der Schleife passiert gar nichts. Python verwendet dazu die Anweisung pass, die
einfach nichts tut. Damit lassen sich solche Warteschleifen leicht realisieren. Die nächste Aktion im Pro-
gramm findet erst statt, nachdem der Benutzer den Sensorkontakt wieder losgelassen hat. Als auffälliges
Zeichen dafür schaltet sich die Anzeige während der Berührung des Sensorkontakts aus, da sie nur leuch-
tet, während die Funktion za() läuft.
Hat der Benutzer den Sensorkontakt wieder losgelassen, läuft das Programm weiter und die Stoppuhr
beginnt zu laufen.
while GPIO.input(k1)==1:
zeit = time.time() - start
Auch hier läuft eine while-Schleife so lange, wie der Eingang k1 High-Pegel liefert, der Sensorkontakt also
nicht berührt wird. Nach dieser Schleife und auch nach dem Reset auf 0 wartet das Programm jedes Mal,
bis der Benutzer den Sensorkontakt wieder losgelassen hat.










