接下來我們就來試一試,通過PWM讓一個LED實現(xiàn)不同亮度的變化,也就是我們常見的呼吸燈了。
硬件接線
還是用這個LED燈,一端連接電阻,再到5V高電平的引腳,另外一端,接到33號引腳的PWM接口。
運行示例程序
大家先來運行例程,看看效果如何。
$ sudo python3 simple_pwm.py
我們來看一下實物的操作,按照剛才的設(shè)置,將實物連接完成,然后連接到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的庫,然后設(shè)置管腳編碼模式為BOARD,然后創(chuàng)建一個PWM的實例化對象p,同時設(shè)置他的頻率,之后就可以通過ChangeDutyCycle來改變他的占空比,在循環(huán)當中,占空比大于等于100時,就會以5%的梯度減小;當小于等于0時,就會以5%的梯度增大。
-
led
+關(guān)注
關(guān)注
243文章
24327瀏覽量
683667 -
電阻
+關(guān)注
關(guān)注
88文章
5700瀏覽量
177014 -
PWM
+關(guān)注
關(guān)注
116文章
5805瀏覽量
222500
發(fā)布評論請先 登錄
FPGA學(xué)習系列:15. 呼吸燈(pwm)設(shè)計

PWM實現(xiàn)呼吸燈效果
怎么通過PWM來實現(xiàn)呼吸燈的
PWM實現(xiàn)呼吸燈的應(yīng)用
如何制作鍵盤呼吸燈

STM32_PWM呼吸燈

STM32 使用PWM實現(xiàn)呼吸燈

評論