EasyManua.ls Logo

Freenove Ultimate Starter Kit - Page 81

Freenove Ultimate Starter Kit
286 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
81
Chapter 4 Analog & PWM
www.freenove.com
support@freenove.com
28
29
30
31
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:
p.start(dc)
To start PWM:where dc is the duty cycle (0.0 <= dc <= 100.0)
p.ChangeFrequency(freq)
To change the frequencywhere freq is the new frequency in Hz
p.ChangeDutyCycle(dc)
To change the duty cyclewhere 0.0 <= dc <= 100.0
p.stop()
To stop PWM.
For more details about usage method for PWM of RPi.GPIO, please refer to:
https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/

Table of Contents