Guten Tag,
ich bin dabei für die Uni einen GPIO Emulator mit Python zu programmieren.
Es geht darum eine Ampelschaltung zu simulieren. Dafür habe ich schon einen Schalter zu auslösen programmiert. Nun soll ich laut aufgabenstellung noch einen zweiten Schalter zum beenden der Anwendung erstellen. Das war auch kein Problem. Mein Problem liegt nun darin , dass ich als Vorgabe habe das ganze mit einem Modul und dem Befehl exit() durchzuführen. Ich verstehe nun nicht, was ich tun muss, um den Schalter mit dem Modul bzw dem befehl zu verknüpfen. Wenn ich das ganze mit in die while schleife setze funktioniert die ganze anwendung nicht mehr.
Schönes Wochenende
Paul
Python
from EmulatorGUI import GPIO
import time
import os
#allgemein
GPIO.setmode(GPIO.BCM) #muss gesetzt werden, ansonsten Fehlermeldungen
GPIO.setwarnings(False) #Warnungen werden ausgeschaltet
# Pin 14 als Ausgang setzen
GPIO.setup(14, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
# Pin 14: Ausgang wird auf HIGH gesetzt
GPIO.output(14, GPIO.HIGH)
GPIO.output(15, GPIO.HIGH)
GPIO.output(18, GPIO.HIGH)
# Pin 23 wird als Schalter definiert,
#mit pull_up_down = GPIO.PUD_UP wird das Signal auf HIGH gesetzt
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
if GPIO.input(23)==False:
print("Button wurde gedrückt")
GPIO.output(14, GPIO.LOW) #Ausgang auf LOW gesetzt
time.sleep(3) #Programmablauf wird 3 Sekunden angehalten
GPIO.output(14, GPIO.HIGH) #Ausgang auf HIGH gesetzt
GPIO.output(15, GPIO.LOW) #Ausgang auf LOW gesetzt
time.sleep(1) #Programmablauf wird 1 Sekunden angehalten
GPIO.output(15, GPIO.HIGH)#Ausgang auf HIGH gesetzt
GPIO.output(18, GPIO.LOW) #Ausgang auf LOW gesetzt
time.sleep(3) #Programmablauf wird 3 Sekunden angehalten
GPIO.output(18, GPIO.HIGH)#Ausgang auf HIGH gesetzt
GPIO.output(15, GPIO.LOW) #Ausgang auf LOW gesetzt
time.sleep(1) #Programmablauf wird 1 Sekunden angehalten
GPIO.output(15, GPIO.HIGH)#Ausgang auf HIGH gesetzt
GPIO.output(14, GPIO.LOW) #Ausgang auf LOW gesetzt
time.sleep(3) #Programmablauf wird 3 Sekunden angehalten
GPIO.output(14, GPIO.HIGH) #Ausgang auf HIGH gesetzt
if GPIO.input(24)==False:
exit()
Alles anzeigen