User manual
59
GPIO.setmode(GPIO.BCM); LED = [18,25]
GPIO.setup(LED[0], GPIO.OUT); GPIO.setup(LED[1], GPIO.OUT)
print ("Strg+C beëindigt het programma")
p = GPIO.PWM(LED[0], 50); q = GPIO.PWM(LED[1], 50)
p.start(0)
q.start(0)
try:
while True:
for c in range(0, 101, 2):
p.ChangeDutyCycle(c); q.ChangeDutyCycle(c)
time.sleep(0.1)
q.ChangeFrequency(10)
for c in range(0, 101, 2):
p.ChangeDutyCycle(100-c); q.ChangeDutyCycle(c)
time.sleep(0.1)
q.ChangeFrequency(50)
except KeyboardInterrupt:
p.stop(); GPIO.cleanup()
6.1.3 Zo werkt het
De basisstructuur van het programma komt overeen met het vorige experiment met een paar kleine uit-
breidingen.
LED = [18,25]; GPIO.setup(LED[0], GPIO.OUT); GPIO.setup(LED[1], GPIO.OUT)
In plaats van een variabele voor de GPIO-poort wordt nu een lijst met twee variabelen gedefinieerd, en
hiermee worden twee GPIO-poorten
18 und 25, als uitgangen voor de LED's geïnitialiseerd.
p = GPIO.PWM(LED[0], 50); q = GPIO.PWM(LED[1], 50); p.start(0); q.start(0)
Aansluitend worden ook de twee objecten p en q aangemaakt, die de PWM-signalen voor de beide LED's met
steeds 50 Hertz creëren.
for c in range(0, 101, 2):
p.ChangeDutyCycle(c); q.ChangeDutyCycle(c)
time.sleep(0.1)
In de eerste lus worden de pulsverhoudingen van de beide PWM-objecten gelijktijdig stap-voor-stap
verhoogd. De beide LED's gedragen zich in deze fase gelijk.
q.ChangeFrequency(10) Aan het einde van deze lus, wanneer de beide LED's de volledige lichtsterkte hebben
bereikt, wordt de frequentie van het PWM-signaal van de tweede LED via de methode
ChangeFrequency()
naar 10 Hertz verlaagd. Deze frequentie wordt door het oog nog als knipperen waargenomen.
for c in range(0, 101, 2):
p.ChangeDutyCycle(100-c); q.ChangeDutyCycle(c)
time.sleep(0.1)