樹莓派筆記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會員
64內容數
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
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
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