Liebes Forum,
ich bastel gerade an einer Fotobox und an sich klappt alles super. Mittels GPIO-Taster starte ich einen LED-Countdown und mache mehrere Fotos, die anschließend zusammengefügt und im Display angezeigt werden. Soweit, so gut. Mittels eines weiteren Tasters soll nun die Anzeige im Display beendet werden. Die Taster lese ich per If-Bedingung in einer Endlosschleife aus. Im Falle des Start-Taster funktioniert das wunderbar. Die Anweisung zum Schließen wird aber immer ausgeführt, unabhängig vom Taster-Zustand. Hier mein Code (In der Mitte fehlen ein paar Funktionen, die mit der Funktionalität des IF jedoch nichts zu tun haben):
#!/usr/bin/python
"""
Script zur ueberwachung der Inputs und zum ausfuehren
der einzelnen Programmschritte
"""
# benoetigte Module importieren
import time
import RPi.GPIO as GPIO
import subprocess
# RPi.GPIO Layout verwenden (wie Pin-Nummern)
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# Pins definieren und "Bereit"-LED einschalten
input_list = [3,5,18]
output_list = [8,10,11,12,13,15,16,19]
GPIO.setup(input_list, GPIO.IN)
GPIO.setup(output_list, GPIO.OUT)
GPIO.output(output_list, GPIO.LOW)
GPIO.output(19, GPIO.HIGH)
...
# Taster auslesen und Aktionen ausfuehren
while 1:
if (GPIO.input(19) == GPIO.HIGH) and (GPIO.input(18) == GPIO.HIGH):
# Wenn die Bereit-LED an ist und Taster 1 geschlossen wird
makephotos()
if (GPIO.input(5) == GPIO.LOW):
# Wenn Taster 3 zum Schliessen der Anzeige geschlossen
subprocess.call("killall pqiv", shell=True)
time.sleep(0.1)
Display More
Außerdem anbei noch die Schaltung. Ich habe drei Mal geprüft, ob ich alles korrekt verkabelt habe und bin mir eigentlich ziemlich sicher, dass ich auf dem Steckbrett alles genau so habe, wie im Schaltplan. Ich habe auch schonmal zwischen Pin 3 und 5 gewechselt, das Ergebnis ist das gleiche: Sobald ich das Skript starte, kommt eine Fehlermeldung, dass kein pqiv-Prozess läuft. Er führt also die IF-Anweisung aus.
Habt ihr irgendeine Idee, ob mit dem Code etwas nicht stimmt? :s
Danke und Gruß
Tim