GPIO.setmode(GPIO.BOARD) # R: 33號腳位(第33根pin) # G: 35號腳位(第35根pin) # B: 37號腳位(第37根pin) R_pin = 33 G_pin = 35 B_pin = 37 |
R_pwm = GPIO.PWM(R_pin, 500) # GPIO.PWM(R_pin, 500)表示channel(腳位) G_pwm = GPIO.PWM(G_pin, 500) # 500 表示 頻率frequency B_pwm = GPIO.PWM(B_pin, 500) R_pwm.start(0) # R_pwm.start(0)的0表示佔空比,可以設置 0~100的數字 G_pwm.start(0) B_pwm.start(0) R_pwm.ChangeDutyCycle(R_mapping) # R_pwm.ChangeDutyCycle() 為改變佔空比,依然 G_pwm.ChangeDutyCycle(G_mapping) # 是要填入一個0~100的數字 B_pwm.ChangeDutyCycle(B_mapping) |
一天有24小時,我一天工作8小時,等於是我每天有1/3的時間在做事,在生產、發電,那我的占空比就是1/3 (33.3%)。而工程師泰迪很勤勞,一天有24小時,泰迪每天工作16個小時,是個工作狂,等於是泰迪每天有2/3的時間在做事,在生產、發電,那麼泰迪的占空比就是2/3 (66.7%)。
其實我覺得"佔空比"這翻譯翻的怪怪的,應該是要翻成"佔忙比"或"負載週期"吧。
套上頻率的概念後,這邊以LED燈來解釋:
若佔空比10%、 f為1 (週期為1秒1次),
表示PWM在這1秒週期內 LED燈亮了0.1秒
若佔空比100%、 f為1 (週期為1秒1次),
表示PWM在這1秒週期內 LED燈亮了整整1秒
若佔空比50%、 f為0.1 (週期為10秒1次),
表示PWM在這10秒週期內 LED燈亮了一半的時間,也就是5秒
若佔空比50%、 f為5 (週期為0.2秒1次 也就是1秒內發生了5個循環周期)
會發現LED燈在0.2秒內亮了0.1秒、暗0.1秒,換句話說如果觀察了1秒,會發現LED燈在這1秒內明滅了5次
那如果是佔空比30%、 f為500呢?
照理說會是在一秒內LED燈明滅閃爍了500次,每次閃爍只有3成的時間亮著、7成的時間是暗的,但因為頻率太高、速度實在太快無法跟上(肉眼怎麼可能在一秒內精準數出500次!! 給你跪了),所以 人眼會覺得這顆LED燈一直亮著、亮度是30%這便是由控制PWM的頻率來達到模擬類比(analog)顯示明亮程度的效果
pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange 50 Hz = 19.2e6 Hz / 1920 / 200 |
我們要的頻率 = 樹莓派基頻(定值) / 1920(預除頻值 定值) / 自己設的變數 |
休閒日誌 (0)
└遊戲玩法 (6)
└就普通的日誌 (4)
#hw (0)
└General Course (2)
└English Oral (0)
電腦相關 (8)
└AI & Nvidia GPU (2)
└Android (3)
└Architecture (3)
└C & C++ (3)
└Compiler (3)
└Database (1)
└Game (1)
└Golang (0)
└Python (1)
└Java & JSP (1)
└Linux (6)
└macOS (1)
└OO (1)
└Raspberry Pi (8)
└Social Networks (2)
└Windows (7)
hyzgdivina 給 喜歡虹咲的LLer:
歡迎拜訪我的小屋~裡面有超多Hoenn繪師又香又甜的虹咲漫畫翻譯作品喔!看更多我要大聲說昨天21:06