Instructions
55
def za(n):
z[0] = int(n / 1000)
z[1] = int(n % 1000 / 100)
z[2] = int(n % 100 / 10)
z[3] = int(n % 10)
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)
time.sleep(0.001)
GPIO.output(zif[i], 1)
try:
while True:
za(x)
if GPIO.input(k1)==0 and x>0:
x-=1
if GPIO.input(k2)==0 and x<9999:
x+=1
except KeyboardInterrupt:
GPIO.cleanup()
So funktioniert es
Auch dieses Programm basiert zu großen Teilen auf früheren Programmen. Die Funktionen zur Initialisie-
rung der Sieben-Segment-Anzeige sind gleich.
k1=17
k2=4
GPIO.setup(k1, GPIO.IN)
GPIO.setup(k2, GPIO.IN)
Für die beiden Sensorkontakte werden zwei GPIO-Pins als Eingänge ohne Pulldown-Widerstand initiali-
siert.
x=0
Bei den Definitionen wird noch eine neue Variable x auf 0 gesetzt. Sie enthält später im Programm den
wert des Zählers, der angezeigt wird.
In diesem Programm wird die Berechnung der vier Ziffern in die Funktion za() ausgelagert, was das
Hauptprogramm vereinfacht. Diese Funktion enthält dazu einen Parameter, der beim Funktionsaufruf
übergeben wird.
def za(n):
z[0] = int(n / 1000)
z[1] = int(n % 1000 / 100)
z[2] = int(n % 100 / 10)
z[3] = int(n % 10)
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)
time.sleep(0.001)
GPIO.output(zif[i], 1)
Der Parameter n in der Funktionsdefinition ist eine vierstellige Zahl, die angezeigt werden soll. Die ersten
vier Zeilen der Funktion ermitteln aus der Zahl die einzelnen Ziffern. Danach läuft die Funktion wie in
früheren Programmen und stellt diese vier Ziffern auf der Sieben-Segment-Anzeige dar.










