#01_pwm_test_01.py import RPi.GPIO as GPIO # Importeer de GPIO module met als naam GPIO. GPIO.setmode (GPIO.BOARD) # De GPIO pinnen gebruiken board nummering. GPIO.setup(12,GPIO.OUT) # Pin 12 initialisatie als output. p = GPIO.PWM (12, 1) # De PWM mode wordt gestart met pin 12 als output. # en een frequentie van 1 Hz. p.start(10) # De PWM functie start met een Duty Cycle van 10%. input("Druk op Enter om te stoppen:") # Message hoe je moet stoppen. p.stop() # stop functie geactiveerd via de Enter toets. GPIO.cleanup() # Zet de pinnen van de GPIO terug naar de basis toestand. ------------------------------------------------------------------------------------------ #02_slider_output_01.py # het programma print de output van de scale widget in de Shell from tkinter import * def print_waarde(str): # print functie waarnaar het commando verwijst waarde = int(str) # de string output van de widget geconverteerd naar een integer print (waarde) venster = Tk() venster.title( "Schaal venster") venster.geometry( "300x150+400+400") schuif1 = Scale(venster,orient= HORIZONTAL, length = 200, from_= 0, to= 100, command = print_waarde).pack() venster.mainloop() ------------------------------------------------------------------------------------------ #03_slider_output_03.py venster met twee schuiven from tkinter import * def print_waarde_1(str): mom_waarde = "DutyCycle: " + str + " %" label1.config(text = mom_waarde) def print_waarde_2(str): waarde = "Frequency: " + str + "Hz" label2.config(text = waarde) venster = Tk() venster.title( "Schaal venster") venster.geometry( "300x150+400+400") schuif1 = Scale(venster,orient= HORIZONTAL, length = 200, from_= 0, to= 100, command = print_waarde_1).pack() schuif2 = Scale(venster, length = 100, from_ = 1, to = 25, command = print_waarde_2).place(x = 250, y = 20) label1 = Label(venster, relief = SUNKEN, width = 14) label1.place(x = 110, y = 70) label2 = Label(venster, relief = SUNKEN, width = 14) label2.place( x= 110, y = 100) venster.mainloop() ------------------------------------------------------------------------------------------- #04_lamp_dimmer.py # Python 3.5.3 (/usr/bin/python3) # Demo programma tkinter Scale widget in combinatie met PWM via de GPIO. # Met de schuifregelaar is de helderheid van de lamp in te stellen import RPi.GPIO as GPIO # Zie GPIO cheatsheet voor GPIO instellingen. GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(12, GPIO.OUT) p = GPIO.PWM(12,100) # PWM output op pin 12, frequency 100 Hz. p.start(1) # Start PWM met een duty cycle van 1 % def change_dc( str): dc = float(str) # Ingevoerde waarde wordt geconverteerd naar een float variabele p.ChangeDutyCycle(dc) def dimmer_stop(): # Functie waarmee de Pulse Width Modulator wordt gestopt p.stop() # De feitelijke stop functie GPIO.cleanup() # Het GPIO interface wordt weer in de maagdelijke toestand gebracht print("LED dimmer is uitgeschakeld") # Bericht dat Pulse Width Modulator is uit geschakeld. # Om weer te starten moet het script opnieuw uitgevoerd worden from tkinter import * venster = Tk( ) dc = DoubleVar( ) venster.geometry( "360x180+400+400") venster.title(" Lamp Dimmer") schaal = Scale(venster, orient = HORIZONTAL, from_ = 0, to = 100, length = 200, command = change_dc) schaal.place( x = 80, y = 30) btn_stop =Button(venster, text = "STOP", bg = "Dark Grey", width = 4, relief = RAISED, borderwidth = 3, command = dimmer_stop).place(x = 150, y = 100) venster.mainloop() ------------------------------------------------------------------------------------------------------- #05_lamp_vent_reg.py import RPi.GPIO as GPIO # Zie GPIO cheatsheet voor GPIO instellingen. GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(12, GPIO.OUT) GPIO.setup(16, GPIO.OUT) p = GPIO.PWM(12,100) # PWM output op pin 12, frequency 100 Hz. p.start(1) v = GPIO.PWM(16, 10) v.start (0) def lamp_cntrl(str): dc = float(str) p.ChangeDutyCycle (dc) def run_vent(str): tt = float(str) v.ChangeDutyCycle(tt) def stop(): p.stop() v.stop() GPIO.cleanup() from tkinter import * venster = Tk() venster.title( "Lamp en Ventilator regeling") venster.geometry( "360x200+400+400") schuif1 = Scale(venster,orient= HORIZONTAL, length = 150, from_= 0, to= 100, command = lamp_cntrl) schuif1.place(x =90, y = 20) schuif2 = Scale(venster, orient = HORIZONTAL,from_ = 5, to = 100, length = 150, command = run_vent) schuif2.place(x = 90, y = 100) stopbtn = Button(venster, text = "STOP", relief = RAISED, borderwidth = 2, command = stop) stopbtn.place(x = 270, y = 80) label1 = Label(venster, text = "Lamp",relief = SUNKEN,borderwidth = 2, width = 12) label1.place(x = 120, y = 70) label2 = Label(venster, text = "Ventilator", relief = SUNKEN, borderwidth = 2, width = 12) label2.place( x = 120, y = 150) venster.mainloop() #05a_slider_output_03.py venster met twee schuiven import RPi.GPIO as GPIO GPIO.setmode (GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(12,GPIO.OUT) p = GPIO.PWM (12, 1) p.start(1) from tkinter import * def print_waarde_1(str): dc = float(str) mom_waarde = "DutyCycle: " + str + " %" label1.config(text = mom_waarde) p.ChangeDutyCycle (dc) def print_waarde_2(str): freq = float(str) waarde = "Frequency: " + str + "Hz" label2.config(text = waarde) p.ChangeFrequency (freq) def dimmer_stop(): # Functie waarmee de Pulse Width Modulator wordt gestopt p.stop() # De feitelijke stop functie GPIO.cleanup() # Het GPIO interface wordt weer in de maagdelijke toestand gebracht print("PWM is uitgeschakeld en GPIO cleanup") venster = Tk() venster.title( "Freq. en DC regeling") venster.geometry( "300x150+400+400") schuif1 = Scale(venster,orient= HORIZONTAL, length = 200, from_= 0, to= 100, command = print_waarde_1).pack() schuif2 = Scale(venster, length = 100, from_ = 1, to = 5, command = print_waarde_2).place(x = 250, y = 20) label1 = Label(venster, relief = SUNKEN, width = 14) label1.place(x = 110, y = 50) label2 = Label(venster, relief = SUNKEN, width = 14) label2.place( x= 110, y = 80) btn_stop =Button(venster, text = "STOP", bg = "Dark Grey", width = 4, relief = RAISED, borderwidth = 3, command = dimmer_stop).place(x = 130, y = 110) venster.mainloop() #pwm_test_01 import RPi.GPIO as GPIO GPIO.setmode (GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(12,GPIO.OUT) p = GPIO.PWM (12, 1) p.start(10) def wijzig_dc(str): dc = int(str) print (dc) p.ChangeDutyCycle(float(dc)) from tkinter import* venster = Tk() venster.title (" Schuifregelaar test") venster.geometry("300x150+400+400") slider = Scale(venster,from_= 0, to= 100, orient = HORIZONTAL, length = 180, command = wijzig_dc).place(x = 60, y = 40) venster.mainloop()