1、相关术语
PWM (pulse width modulation) 脉冲宽度调制
脉冲:按照一个周期上下震荡的时序电路
宽度调制:一个周期内高电平占整个周期的多少,100%即一直高电平,50%即一半高电平,一半低电平,此称为占空比
2、Python实现树莓派PWM控制
常用的方法: 注意!设置PWM前先设置为输出
GPIO.PWM(channel, frequency):设置输出引脚为PWM引脚,设置频率start(dc):开启PWM,dc为占空比0-100ChangeFrequency(freq):更改频率ChangeDutyCycle(dc):更改占空比0-100stop():停止PWM
3、设置LED灯1秒闪烁一次
#!/usr/bin/python
#-*- coding: utf-8 -*# 导入模块
import RPi.GPIO as GPIO
import time# 设置GPIO模块的警告提示,取消
GPIO.setwarnings(False)# 设置为BCM引脚
GPIO.setmode(GPIO.BCM)# 设置引脚号,LED18
LED = 18# 将引脚设置为输出,初始化低电平
GPIO.setup(LED,GPIO.OUT,initial=GPIO.LOW)# 设置PWM,设置频率0.5hz
pwm = GPIO.PWM(LED,0.5)# 设置占空比50,即50%高电平,50%低电平
pwm.start(50)# 闪烁
try:while True:time.sleep(1)
except KeyboardInterrupt:# 清空GPIOGPIO.cleanup()
4、LED灯亮暗切换
#!/usr/bin/python
#-*- coding: utf-8 -*# 导入模块
import RPi.GPIO as GPIO
import time# 设置GPIO模块的警告提示,取消
GPIO.setwarnings(False)# 设置为BCM引脚
GPIO.setmode(GPIO.BCM)# 设置引脚号,LED18
LED = 18# 将引脚设置为输出,初始化低电平
GPIO.setup(LED,GPIO.OUT,initial=GPIO.LOW)# 设置PWM,设置频率50hz
pwm = GPIO.PWM(LED,50)# 设置占空比0
pwm.start(0)# 闪烁五次
try:while True:for i in range(0,101,5):pwm.ChangeDutyCycle(i)time.sleep(0.05)for i in range(100,-1,-5):pwm.ChangeDutyCycle(i)time.sleep(0.05)
except KeyboardInterrupt:# 清空GPIOGPIO.cleanup()