loop()
e xcept KeyboardInterrupt: # When 'Ctrl+C' is pressed, the subprogram destroy() will
be executed.
destroy()
LED is connected to the IO port called GPIO18. And LedPin is defined as 12 and set to output mode according
to the corresponding chart for pins. Then create a PWM instance and set the PWM frequency to 1000HZ, the
initial duty cycle to 0%.
LedPin = 12
def setup():
g lobal p
GPIO. setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO. setup(LedPin, GPIO. OUT) # Set LedPin's mode is output
GPIO. output(LedPin, GPIO. LOW) # Set LedPin to low
p = GPIO. PWM(LedPin, 1000) # Set Frequency to 1KHz
p. start(0) # Duty Cycle = 0
There are two “for” cycles used to realize breathing LED in the next endless “while” cycle. The first makes the
ledPin output PWM from 0% to 100% and the second makes the ledPin output PWM from 100% to 0%.
def loop():
w hile Tr ue:
for dc in range( 0, 101, 1): # Increase duty cycle: 0~100
p.ChangeDutyCycle(dc) # Change duty cycle
time.sleep(0.01)
time.sleep(1)
for dc in range( 100, - 1, -1): # Decrease duty cycle: 100~0
p.ChangeDutyCycle(dc)
time.sleep(0.01)
time.sleep(1)
The related functions of PWM are described as follows:
p = GPIO.PWM(channel, frequency)
To create a PWM instance:
To start PWM:,where dc is the duty cycle (0.0 <= dc <= 100.0)
To change the frequency,where freq is the new frequency in Hz
To change the duty cycle,where 0.0 <= dc <= 100.0
For more details about usage method for PWM of RPi.GPIO, please refer to:
https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/