接下來我們就來試一試,通過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
+關注
關注
242文章
23306瀏覽量
661538 -
電阻
+關注
關注
86文章
5525瀏覽量
172266 -
PWM
+關注
關注
114文章
5193瀏覽量
214210
發布評論請先 登錄
相關推薦
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次下載
評論