ich bin ein Python-Neuling und habe letzte Woche angefangen mich damit zu beschäftigen und mit meinem Raspberry Pi ein "Licht-Mischer" zu bauen. Man soll über ein Touchscreen-Display verschiedene Programme ausführen können. Nach dem man ein Programm ausgewählt hat, sollen verschiedene LEDs, verschieden lang leuchten (im Code habe ich noch nicht die endgültigen Zeiten drin) und nach einer bestimmten Zeit ausgehen (wundert euch die vertauschten "True" und "False" nicht, da die Relaiskarte, woran die LEDs angeschlossen sind, es zum Schalten so erfordert).
Soweit klappt alles auch. Wenn ich auf ein Button klicke ändert dieses seine Farbe bis das Programm zu Ende gelaufen ist. Jetzt kommt mein Problem:
Wenn ich während das Programm abläuft auf die anderen Buttons draufdrücke, dann werden die jewiligen Programme im Anschluss sofort ausgeführt. Ich hätte aber gerne, dass während ein Programm abläuft, alle Buttons gesperrt sind. Jedoch kriege ich seit zwei Tagen das Ganze nicht hin. Habt ihr vllt. eine Lösung für mich??? Danke im Voraus für die Mühen!!!
Code: Alles auswählen
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
from Tkinter import *
GPIO.setmode(GPIO.BCM)
led-eins = 0
led-zwei = 1
led-drei = 2
led-vier = 3
led-fünf = 4
led-sechs = 5
led-sieben = 6
led-acht = 7
Lichtmischer = [4,17,18,21,22,23,24,25]
GPIO.setup(Lichtmischer[led-eins], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-zwei], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-drei], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-vier], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-fünf], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-sechs], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-sieben], GPIO.OUT, initial=True)
GPIO.setup(Lichtmischer[led-acht], GPIO.OUT, initial=True)
root = Tk()
root.geometry('1024x600')
#root.configure(bg='white')
root.title("COCKTAIL-Lichtmischer")
def light1():
time.sleep(2)
GPIO.output(Lichtmischer[led-eins],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-eins],True)
time.sleep(2)
def light2():
time.sleep(2)
GPIO.output(Lichtmischer[led-zwei],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-zwei],True)
time.sleep(2)
def light3():
time.sleep(2)
GPIO.output(Lichtmischer[led-drei],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-drei],True)
time.sleep(2)
def light4():
time.sleep(2)
GPIO.output(Lichtmischer[led-vier],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-vier],True)
time.sleep(2)
def light5():
time.sleep(2)
GPIO.output(Lichtmischer[led-fünf],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-fünf],True)
time.sleep(2)
def light6():
time.sleep(2)
GPIO.output(Lichtmischer[led-sechs],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-sechs],True)
time.sleep(2)
def light7():
time.sleep(2)
GPIO.output(Lichtmischer[led-sieben],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-sieben],True)
time.sleep(2)
def light8():
time.sleep(2)
GPIO.output(Lichtmischer[led-acht],False)
time.sleep(3)
GPIO.output(Lichtmischer[led-acht],True)
time.sleep(2)
Label(root,
text="Licht Show", font=('sans-serif', 25, 'bold')).grid(row=0, column=0)
Label(root,
text="Bitte Programm auswählen. ", font=('sans-serif', 20, 'italic')).grid(row=0, column=1, sticky=E)
Label(root,
text="", font=('sans-serif', 25,)).grid(row=1, column=1)
Button(root,
text="Programm 1", width=21, height=3, font=('sans-serif', 25, 'bold'),
command=light1).grid(row=2, column=0)
Button(root,
text="Programm 2", width=21, height=3, font=('sans-serif', 25, 'bold'),
command=light2).grid(row=3, column=0)
Button(root,
text="Programm 3", width=21, height=3, font=('sans-serif', 25, 'bold'),
command=light3).grid(row=4, column=0)
Button(root,
text="Programm 4", width=21, height=3, font=('sans-serif', 25, 'bold'),
command=light4).grid(row=5, column=0)
Button(root,
text="Programm 5", width=22, height=3, font=('sans-serif', 25, 'bold'),
command=light5).grid(row=2, column=1)
Button(root,
text="Programm 6", width=22, height=3, font=('sans-serif', 25, 'bold'),
command=light6).grid(row=3, column=1)
Button(root,
text="Programm 7", width=22, height=3, font=('sans-serif', 25, 'bold'),
command=light7).grid(row=4, column=1)
Button(root,
text="Programm 8", width=22, height=3, font=('sans-serif', 25, 'bold'),
command=light8).grid(row=5, column=1)
root.mainloop()
GPIO.cleanup()