Ik zit met een probleempje waar ik niet uit kom.
Via een knop in het hoofdmenu wil ik een ander programma opstarten waar ik de helderheid van mijn LED's kan inregelen.
Dit lukt tot zover. Ik kan vervolgens ook weer terug naar het hoofdmenu en de leds blijven gewoon aan. Het probleem is alleen dat, wanneer ik weer terug ga naar het "ledmenu", de PWM weer op 0 gezet word.
Ik wil eigenlijk dat de huidige PWM eerst wordt uitgelezen en "geset" wordt voor het programma wordt gestart.
Dit is de code voor het hoofdmenu:
Code: Select all
#imports:
import pyfirmata
import Tkinter
from Tkinter import *
import os
#firmata information:
board = pyfirmata.Arduino('/dev/ttyUSB0')
#Analog input pin
pin0 = board.get_pin('a:0:i')
#Digital output pins PWM
pin3 = board.get_pin('d:3:p')
pin5 = board.get_pin('d:5:p')
pin6 = board.get_pin('d:6:p')
#root
root2 = Tk()
root2.title("Hoofdmenu")
root2.minsize(400, 10)
root2.maxsize(400, 200)
def Led_menu():
root2.destroy()
os.system('python LedMenu.py')
#hoofdprogramma:
#Knop led menu
button = Button(root2,
text="Led menu",
command=Led_menu)
button.pack(anchor=NE)
root2.mainloop()
Code: Select all
import pyfirmata
#import Tkinter
from Tkinter import *
import os
board = pyfirmata.Arduino('/dev/ttyUSB0')
#Analog input pin
pin0 = board.get_pin('a:0:i')
#Digital output pins PWM
pin3 = board.get_pin('d:3:p')
pin5 = board.get_pin('d:5:p')
pin6 = board.get_pin('d:6:p')
#Defs open programs
def Main_menu():
root.destroy()
os.system('python main_menu.py')
#defs
def set_brightness_blue(x):
# pin3.read()
pin3.write(float(x) / 100.0)
def set_brightness_red(x):
pin5.write(float(x) / 100.0)
def set_brightness_green(x):
pin6.write(float(x) / 100.0)
def Led_off():
scale1.set(0)
scale2.set(0)
scale3.set(0)
root = Tk()
root.title("Led menu")
class App:
def __init__(self,master):
frame = Frame(master)
frame.pack()
self.button = Button(frame,
text="Uit",
command=Led_off, )
self.button.pack(side=LEFT)
self.button2 = Button(frame,
text="Hoofd menu",
command=Main_menu,
)
self.button2.pack(side=LEFT)
scale1 = Scale(root,
command = set_brightness_blue,
orient = HORIZONTAL,
length = 400,
label = 'Blue',)
scale1.pack(anchor = CENTER)
scale2 = Scale(root,
command = set_brightness_red,
orient = HORIZONTAL,
length = 400,
label = 'Red')
scale2.pack(anchor = CENTER)
scale3 = Scale(root,
command = set_brightness_green,
orient = HORIZONTAL,
length = 400,
label = 'Green')
scale3.pack(anchor = CENTER)
label = Label(root)
label.pack(anchor = "nw")
app = App(root)
root.mainloop()
Alvast heel erg bedankt.