接下来我们就来试一试,通过PWM让一个LED实现不同亮度的变化,也就是我们常见的呼吸灯了。
硬件接线
还是用这个LED灯,一端连接电阻,再到5V高电平的引脚,另外一端,接到33号引脚的PWM接口。
运行示例程序
大家先来运行例程,看看效果如何。
$ sudo python3 simple_pwm.py
我们来看一下实物的操作,按照刚才的设置,将实物连接完成,然后连接到X3Pi,运行刚才的程序。就可以看到这样的一个呼吸灯的效果了。
代码解析
simple_pwm.py:
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 支持PWM的管脚: 32 and 33, 在使用PWM时,必须确保该管脚没有被其他功能占用
output_pin = 33
def main():
# Pin Setup:
# Board pin-numbering scheme
GPIO.setmode(GPIO.BOARD)
# 支持的频率范围:48KHz ~ 192MHz
p = GPIO.PWM(output_pin, 48000)
# 初始占空比 25%, 先每0.25秒增加5%占空比,达到100%之后再每0.25秒减少5%占空比
val = 25
incr = 5
p.ChangeDutyCycle(val)
p.start(val)
print("PWM running. Press CTRL+C to exit.")
try:
while True:
time.sleep(0.25)
if val >= 100:
incr = -incr
if val <= 0:
incr = -incr
val += incr
p.ChangeDutyCycle(val)
finally:
p.stop()
GPIO.cleanup()
if __name__ == '__main__':
main()
一样的引入GPIO的库,然后设置管脚编码模式为BOARD,然后创建一个PWM的实例化对象p,同时设置他的频率,之后就可以通过ChangeDutyCycle来改变他的占空比,在循环当中,占空比大于等于100时,就会以5%的梯度减小;当小于等于0时,就会以5%的梯度增大。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
240文章
23091浏览量
657429 -
电阻
+关注
关注
86文章
5454浏览量
171514 -
PWM
+关注
关注
114文章
5123浏览量
213246
发布评论请先 登录
相关推荐
STM32_PWM呼吸灯
1、什么叫呼吸灯?由亮到暗逐渐变化,很有节奏感地一起一伏,感觉好像人在呼吸,当手机收到消息,屏幕上的指示灯会渐变,比较显眼,能起到
发表于 11-26 12:21
•20次下载
STM32 使用PWM实现呼吸灯
STM32 PWM实现呼吸灯使用STM32F103ZET6 定时器4 CH2通道产生PWM波,在GPIOD,GPIO_PIN13引脚LED1产生呼吸
发表于 12-24 19:41
•55次下载
评论