einen Loop mit einem Button unterbrechen
Verfasst: Donnerstag 5. März 2020, 10:23
ich versuche die laufende Schleife in dem ( FunktionTest()) mit dem Button Stop zu Unterbrechen aber Funktionniert nicht ich brauche eure Hilfe Danke ; )
Code: Alles auswählen
import RPi.GPIO as gpio
import time as t
from tkinter import*
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
#''' INPUT definieren '''
gpio.setup(25, gpio.IN, pull_up_down = gpio.PUD_UP)# SENSOR1
gpio.setup(12, gpio.IN, pull_up_down = gpio.PUD_OFF) # SENSOR2
gpio.setup(16, gpio.IN, pull_up_down = gpio.PUD_DOWN) #SET
gpio.setup(20, gpio.IN, pull_up_down = gpio.PUD_DOWN) # RESET
gpio.setup(21, gpio.IN, pull_up_down = gpio.PUD_DOWN) # NOT-AUS
#''' OUTPUT definieren '''
gpioList = [13,6,5,22,27,17,4]
gpio.setup(19, gpio.OUT)
gpio.output(19, gpio.HIGH)
for i in gpioList :
gpio.setup(i, gpio.OUT)
gpio.output(i, gpio.HIGH)
global notaus
notaus = 0
def on_closing():
window.destroy()
def FunktionStop () :
global notaus
notaus = 1
statusbar["text"]= "Block"
def Restart () :
global notaus
notaus = 0
print(notaus)
statusbar["text"] ="Restart"
def FunktionTest ():
global notaus
x = 4
statusbar["text"] ="it works"
while notaus== 0 and x > 0 and gpio.input(21) == 1 :
if gpio.input(12) == 0 :
print("detected1")
gpio.output(27, gpio.HIGH)
Sensor= 1
if gpio.input(25) == 0 and Sensor == 1:
print ("detected2")
Sensor = 0
x = x-1
print(x)
window = Tk()
window.title("GUI")
#Variable Declare
#outputs
statusbar = Label(window, text="auf start drücken", width=25,height =5, borderwidth=15 ,relief = SUNKEN)
statusbar.grid(row= 6, column = 2)
# variable to store input
b1=Button(window, text="Sensor-Test",command =FunktionTest)
b1.grid(row=2, column = 2, padx= (100,5), pady=5)
b2=Button(window, text="Startwischen ",command =Restart)
b2.grid(row=3, column = 2, padx= (100,5), pady=5)
b3=Button(window, text="STOP ",command =FunktionStop)
b3.grid(row=4, column = 2, padx= (100,5), pady=5)
window.protocol("WM_DELETE_WINDOW", on_closing)
window.mainloop()