Instructions
49
def za():
for i in range(4):
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)
if i == 2:
GPIO.output(dp, 1)
else:
GPIO.output(dp, 0)
time.sleep(0.001)
GPIO.output(zif[i], 1)
try:
while True:
z = [0,0,0,0]
while GPIO.input(t1)==0:
za()
start = time.time()
while GPIO.input(t2)==0:
zeit = time.time() - start
z[0] = int(zeit % 1000 / 100)
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(t3)==0:
za()
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 gleich wie an den vorherigen Tagen.
t1=22
t2=27
t3=17
GPIO.setup(t1, GPIO.IN, GPIO.PUD_DOWN)
GPIO.setup(t2, GPIO.IN, GPIO.PUD_DOWN)
GPIO.setup(t3, GPIO.IN, GPIO.PUD_DOWN)
Zusätzlich zu den GPIO-Pins der Sieben-Segment-Anzeige werden drei Pins als Eingänge mit Pulldown-
Widerständen für die Taster initialisiert.
print("Start: Taste 1")
print("Stopp: Taste 2")
print("Reset: Taste 3")
print("Strg+C beendet das Programm")
Vor dem eigentlichen Start des Programms erscheint eine kurze Erklärung der Tasten.
try:
while True:
z = [0,0,0,0]
Die Hauptschleife des Programms setzt am Anfang jedes Durchlaufs die Stoppuhr auf 0. Die vier Ziffern in
der Liste z[] werden auf 0 gesetzt.
while GPIO.input(t1)==0:
za()
So lange die Taste 1 nicht gedrückt ist, zeigt die Funktion za() vier Nullen auf der Sieben-Segment-
Anzeige an.










