樹莓派筆記RaspberryPi -(7) LED 呼吸燈 (PWM 控制)

更新 發佈閱讀 6 分鐘

PWM=Pulse Width Modulation,

通過調整數位脈衝的週期以及在週期中的寬度占比, 來模擬類比信號輸出

像是控制馬達轉速, 舵機角度, 燈號強度...等

 

目前樹莓派有幾種作法

一是通過軟體控制, 優點是每隻GPIO腳都可以發出, 數量不受限

缺點是占用CPU計算資源, 太多PWM有可能會延遲

另外是寬度占比只能設定0~100, 較不精準

二是硬體控制,

脈衝非常準確, 寬度可以設定0~1,000,000

但在樹莓派上一次只能產生兩組, BCM 12/18共用通道0, BCM 13/19共用通道1

三是DMA控制, 介於兩者之間

通常由擴充版提供, 精準度依板子不同而異

以GrovePi+來說脈衝寬度可以設定0~255的範圍, 僅D3/D5/D6可提供

 

================================

軟體控制PWM程式碼

================================

import RPi.GPIO as GPIO
import time

LedPin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LedPin, GPIO.OUT)   # Set pin mode as output

p = GPIO.PWM(LedPin, 1000)     # set Frequece to 1KHz
p.start(0)                     # Start PWM output, Duty Cycle = 0

try:
        while True:
                for dc in range(0, 101, 5):   # Increase duty cycle: 0~100
                        p.ChangeDutyCycle(dc)     # Change duty cycle
                        time.sleep(0.05)
                time.sleep(1)
                for dc in range(100, -1, -5): # Decrease duty cycle: 100~0
                        p.ChangeDutyCycle(dc)
                        time.sleep(0.05)
                time.sleep(1)
except KeyboardInterrupt:
        p.stop()
        GPIO.cleanup()

================================

 

================================

硬體PWM程式碼, 必須先安裝pigpio庫, 並執行sudo pigpiod

================================

import pigpio
import time

PWM_LED_PIN = 18
PWM_FREQ = 1000
 
pi = pigpio.pi()
 
try:
    while True:
        for i in range(0, 50, 1):
            pi.hardware_PWM(PWM_LED_PIN, PWM_FREQ, i*20000)
            time.sleep(0.1)
        for i in range(49, -1, -1):
            pi.hardware_PWM(PWM_LED_PIN, PWM_FREQ, i*20000)
            time.sleep(0.1)
except KeyboardInterrupt:
    pi.set_mode(PWM_LED_PIN, pigpio.INPUT)

================================

 

================================

GrovePi+ PWM程式碼

================================

import grovepi
import time

led = 5 # Connect the Grove LED to digital port D5
grovepi.pinMode(led,"OUTPUT")

try:
    while True:
        for i in range(0, 256, 15): #Increment brightness for next iteration
            grovepi.analogWrite(led,i)  # Give PWM output to LED
            time.sleep(.3)
        for i in range(255, -1, -15):
            grovepi.analogWrite(led,i)  # Give PWM output to LED
            time.sleep(.3)

except KeyboardInterrupt:
    grovepi.analogWrite(led,0)

================================

 

 

留言
avatar-img
留言分享你的想法!
avatar-img
hls Ding的沙龍
7會員
68內容數
ktest
hls Ding的沙龍的其他內容
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
看更多
你可能也想看
Thumbnail
嗨大家好!我是重度網購患者賴床鴨鴨!每年最期待的蝦皮12.12又要來了,我的購物車也早已瀕臨爆炸邊緣。 尤其是我最近在做的「高速負離子吹風機」評比,一口氣比較了5款,每台都想帶回家!但身為一個精打細算的小資族,我發現了一個天大的祕密:原來在蝦皮購物,居然可以不只省錢,還能偷偷賺錢! 今天這篇,我
Thumbnail
嗨大家好!我是重度網購患者賴床鴨鴨!每年最期待的蝦皮12.12又要來了,我的購物車也早已瀕臨爆炸邊緣。 尤其是我最近在做的「高速負離子吹風機」評比,一口氣比較了5款,每台都想帶回家!但身為一個精打細算的小資族,我發現了一個天大的祕密:原來在蝦皮購物,居然可以不只省錢,還能偷偷賺錢! 今天這篇,我
Thumbnail
又到了每年最溫(ㄏㄨㄚ)馨(ㄑㄧㄢˊ)的季節,其實在還單身的時候,我並沒有特別喜愛這個節日,但自從去了歐洲生活,再加上有了孩子後,對於聖誕節的好感與日俱增,除了要幫孩子準備聖誕禮物,還需要幫家佈置一下才有儀式感,若你對於今年的聖誕禮物還沒有頭緒?趁著蝦皮雙12的優惠,快來看看我買了什麼吧!
Thumbnail
又到了每年最溫(ㄏㄨㄚ)馨(ㄑㄧㄢˊ)的季節,其實在還單身的時候,我並沒有特別喜愛這個節日,但自從去了歐洲生活,再加上有了孩子後,對於聖誕節的好感與日俱增,除了要幫孩子準備聖誕禮物,還需要幫家佈置一下才有儀式感,若你對於今年的聖誕禮物還沒有頭緒?趁著蝦皮雙12的優惠,快來看看我買了什麼吧!
Thumbnail
來了來了~~~購物狂最期待的大日子真的就是-蝦皮 12.12,折扣真的一年比一年還誇張,價格越殺越狠,各種免運、滿額折、品牌券直接發到領不完! 從這裡加入我的分潤連結:https://s.shopee.tw/7fSd8GVvNC 推薦碼請填:A6ZVDYE
Thumbnail
來了來了~~~購物狂最期待的大日子真的就是-蝦皮 12.12,折扣真的一年比一年還誇張,價格越殺越狠,各種免運、滿額折、品牌券直接發到領不完! 從這裡加入我的分潤連結:https://s.shopee.tw/7fSd8GVvNC 推薦碼請填:A6ZVDYE
Thumbnail
解釋完 CPO 架構與運作模式及 tsmc 剛發布的 COUPE 技術與 CPO 規劃之後,接下來談何謂光收發模組?而光收發模組的未來技術與產業趨勢又如何?
Thumbnail
解釋完 CPO 架構與運作模式及 tsmc 剛發布的 COUPE 技術與 CPO 規劃之後,接下來談何謂光收發模組?而光收發模組的未來技術與產業趨勢又如何?
Thumbnail
HP電競筆電顯卡4060 ASUS曲面螢幕 滑鼠品牌POJUN波軍 麥克風HYPERX S 鍵盤平民牌子 我之後會回去嘗試直播遊戲實況,有圖奇TWITCH帳號的可以追蹤我的TWITCH我會不定期的做直播和訂閱我的YT感謝
Thumbnail
HP電競筆電顯卡4060 ASUS曲面螢幕 滑鼠品牌POJUN波軍 麥克風HYPERX S 鍵盤平民牌子 我之後會回去嘗試直播遊戲實況,有圖奇TWITCH帳號的可以追蹤我的TWITCH我會不定期的做直播和訂閱我的YT感謝
Thumbnail
筆記-2024.03.16-曲博 財訊訪談-談ARM *處理器的兩種架構: 精簡指令集RISC 複雜指令集CISC, *CPU為複雜指令集,運算能力較強,缺點是較耗電。 *ARM,為精簡指令集,運算效能較差,但較省電,屬於微處理器(MPU)。 *英特爾稱霸電腦用CPU, 然而手機較看重
Thumbnail
筆記-2024.03.16-曲博 財訊訪談-談ARM *處理器的兩種架構: 精簡指令集RISC 複雜指令集CISC, *CPU為複雜指令集,運算能力較強,缺點是較耗電。 *ARM,為精簡指令集,運算效能較差,但較省電,屬於微處理器(MPU)。 *英特爾稱霸電腦用CPU, 然而手機較看重
Thumbnail
來看一下這一段影片: 這一處電位是PWM的VCC,看起來是浮動不穩定!
Thumbnail
來看一下這一段影片: 這一處電位是PWM的VCC,看起來是浮動不穩定!
Thumbnail
因為前陣子跟台的時候聽到有消波塊想要實體的伍一時鐘...... 所以今天,它來了
Thumbnail
因為前陣子跟台的時候聽到有消波塊想要實體的伍一時鐘...... 所以今天,它來了
Thumbnail
又是一段忙碌的日子,好不容易稍微有精力來記錄這個主題的進度了,但消息可能並沒想像中那麼美好。
Thumbnail
又是一段忙碌的日子,好不容易稍微有精力來記錄這個主題的進度了,但消息可能並沒想像中那麼美好。
Thumbnail
前一陣子,我跟平常一樣在滑 Twitter 時,一則貼文引起了我的注意,那是一個有趣的構想⋯
Thumbnail
前一陣子,我跟平常一樣在滑 Twitter 時,一則貼文引起了我的注意,那是一個有趣的構想⋯
Thumbnail
2023年來看處理器的發展,x86_64系統結構與ARM64系統結構是目前市場上的主流處理器系統結構,ARM是一個整合作業系統、組合語言、C語言、電子電路技術的宏大領域。熟悉ARM架構一定是硬體工程師想要進軍CPU領域的唯一目標(當然還有一個是RISC-V)。
Thumbnail
2023年來看處理器的發展,x86_64系統結構與ARM64系統結構是目前市場上的主流處理器系統結構,ARM是一個整合作業系統、組合語言、C語言、電子電路技術的宏大領域。熟悉ARM架構一定是硬體工程師想要進軍CPU領域的唯一目標(當然還有一個是RISC-V)。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News