News

Discover more

使用(yòng) RPI.GPIO 模塊的(de)脈寬調制(PWM)功能


脈寬調制(PWM)是指用(yòng)微處理(lǐ)器的(de)數字輸出來(lái)對(duì)模拟電路進行控制,是一種對(duì)模拟信号電平進行數字編碼的(de)方法。在樹莓派上,可(kě)以通(tōng)過對(duì)GPIO的(de)編程來(lái)實現PWM。 

創建一個(gè) PWM 實例: 

p = GPIO.PWM(channel, frequency) 

啓用(yòng) PWM: 

p.start(dc) # dc 代表占空比(範圍:0.0 <= dc >= 100.0) 

更改頻(pín)率: 

p.ChangeFrequency(freq) # freq 爲設置的(de)新頻(pín)率,單位爲 Hz  

更改占空比: 

p.ChangeDutyCycle(dc) # 範圍:0.0 <= dc >= 100.0 


停止 PWM: 

p.stop() 
注意,如果實例中的(de)變量“p”超出範圍,也(yě)會導緻 PWM 停止。 


以下(xià)爲使 LED 每兩秒鐘(zhōng)閃爍一次的(de)示例: 

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 0.5)
p.start(1)
input('點擊回車停止:')   # 在 Python 2 中需要使用(yòng) raw_input
p.stop()
GPIO.cleanup()

以下(xià)爲使 LED 在亮/暗之間切換的(de)示例:


import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 50)  # 通(tōng)道爲 12 頻(pín)率爲 50Hz
p.start(0)
try:
    while 1:
        for dc in range(0, 101, 5):
            p.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -5):
            p.ChangeDutyCycle(dc)
            time.sleep(0.1)
except KeyboardInterrupt:
    pass
p.stop()
GPIO.cleanup()



相關文章(zhāng)

上拉電阻和(hé)下(xià)拉電阻

上拉電阻和(hé)下(xià)拉電阻

在折騰Arduino或者樹莓派信号輸入的(de)時(shí)候,時(shí)常聽(tīng)到的(de)就是上拉電阻和(hé)下(xià)拉電阻,

查看全文

牛逼的(de)樹莓派dashboard

樹莓派安裝 Nginx + PHP7.3 + Pi Dashboard

查看全文

Linux 下(xià)使用(yòng) system

下(xià)面的(de)教程将介紹如何将命令或程序配置爲開機啓動時(shí)自動運行的(de)服務。完成配置之後,就

查看全文