Instructions

30
11. Tag
Heute im Adventskalender
•1 GPIO-Verbindungskabel
Der Schaltungsaufbau ist der gleiche wie am 10. Tag.
Beliebige Zahlen anzeigen
Im letzten Programm war die Zahl 1234 fest im Programm eingetragen. Das nächste Programm bietet die
Möglichkeit, beliebige Zahlen einzugeben und darzustellen. Dabei werden auch Möglichkeiten gezeigt,
Fehler bei der Benutzereingabe zu korrigieren.
Das Programm
Das Programm 11zahl.py erfordert eine vierstellige Zahl, was aber noch lange nicht heißt, dass der
Benutzer sie auch wirklich eingibt. Daher muss das Programm sämtliche Fehleingaben abfangen oder zu
gültigen Zahlen umwandeln. Wenn der Benutzer zum Beispiel versehentlich oder auch absichtlich eine
längere oder kürzere Zahl oder sogar Buchstaben und Sonderzeichen eingibt, darf es zu keinem fehlerbe-
dingten Programmabbruch kommen.
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
seg={'a':21, 'b':8, 'c':11, 'd':26, 'e':19, 'f':20, 'g':13}
for s in "abcdefg":
GPIO.setup(seg[s], GPIO.OUT, initial=0)
zif=[16, 12, 7, 6]
for z in zif:
GPIO.setup(z, GPIO.OUT, initial=1)
zahl=[
"abcdef", #0
"bc", #1
"abdeg", #2
"abcdg", #3
"bcfg", #4
"acdfg", #5
"acdefg", #6
"abc", #7
"abcdefg", #8
"abcdfg", #9
]
z = [0,0,0,0]
print("Strg+C beendet das Programm")
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)
time.sleep(0.001)
GPIO.output(zif[i], 1)
try:
while True:
s = input("Bitte vierstellige Zahl eingeben:")
s = s.zll(4)
for i in range(4):
11. Tag