5Logische Verknüpfungen
Im Kapitel bedingte Verzweigung hast du gelernt, dass eine Aussage stets wahr oder falsch sein kann und dass ein Programm in jedem Fall verschiedene Wege einschlagen kann. Im aktuellen Programm benutzen wir die Aussage:
wenn der mittlere Anschluss des PIR-Sensors von 0V auf 3.3V ansteigt und damit eine Bewegung signalisiert. In Circuitpython schreiben wir pir_d.rose
.
Möchte man eine Aussage aus Teilaussagen zusammensetzen, benötigt man logische Verknüpfungen.
Es gibt drei logische Verknüpfungen: UND, ODER, NICHT
if «Bedingung1» and «Bedingung2»
if «Bedingung1» or «Bedingung2»
if not «Bedingung»
Betrachte den folgenden Programmausschnitt, der den vorangegangenen verändert und übernehme die Änderungen in deinen Code.
pir = digitalio.DigitalInOut(board.A5)
pir.switch_to_input()
pir_d = Debouncer(pir)
door = digitalio.DigitalInOut(board.D9)
door.switch_to_input(pull=digitalio.Pull.UP)
while True:
pir_d.update()
if pir_d.rose and door.value:
pixel[0] = BLUE
adafruit_rtttl.play(board.A3, korobeyniki)
pixel[0] = CLEAR
Die Nicht-Verknüpfung
Die logische nicht-Verknüpfung kehrt den Wahrheitswert einer Aussage um. Sie verneint also eine Aussage, man spricht daher auch von einer Negation. Aus:
wird:
In Circuitpython schreibst du ein not
direkt vor die Aussage, wenn du sie negieren möchtest.
Die UND-Verknüpfung
Die logische und-Verknüpfung wird auch Konjunktion genannt. Eine mit and
zusammengesetzte Aussage ist also nur dann wahr, wenn beide Teilaussagen - die erste und die zweite - wahr sind. Beispiel:
Die ODER-Verknüpfung
Die logische oder-Verknüpfung wird auch Disjunktion genannt. Eine mit or
zusammengesetzte Aussage ist also dann wahr, wenn mindestens eine der beiden Teilaussagen - die erste oder die zweite oder auch beide - wahr ist. Beispiel:
Beachte, dass die logische oder-Verknüpfung nicht dem Entweder-Oder aus dem Alltag entspricht.
Welche logische Verknüpfung wurde in dem Programm oben verwendet und wie verhält sich das Programm wenn du die Konjunktion durch eine Disjunktion ersetzt?
Aufgabe
Verändere das Programm so dass nur dann das Lied gespielt wird, wenn der Magnetschalter geschlossen ist und eine Bewegung erkannt wurde.