嵌入式系統
脈衝寬度調變(PWM)
脈衝寬度調變用一根只能開或關的數位腳,假造出類比的電位。訣竅在於速度與比例:讓腳位每秒開關上千次,並改變它「開」所佔的時間比例——也就是工作週期(duty cycle)。當工作週期為 25% 時,腳位在四分之一的時間是高電位,而反應跟不上的燈泡或馬達只感受到平均值,表現得像只拿到四分之一的滿電壓。這就像用比你眼睛還快的速度把燈反覆開關來調光:每次閃爍中「開」的時間越多,看起來就越亮。
因為開關不是全開(無壓降)就是全關(無電流),幾乎沒有能量被白白變成熱——這正是 PWM 調 LED 亮度、控制馬達轉速、穩壓電源都遠比用調光電阻有效率的原因。MCU 用一個往上數、並與門檻值比較的硬體計時器,幾乎不費力就能產生它,CPU 不必忙著手動切換腳位。頻率要依負載挑選:LED 用幾百 Hz(更快也無妨)即可,馬達則用約 20 kHz,把切換的嘯叫聲推到聽覺之上。把 PWM 訊號經過 RC 低通濾波器平滑,你就做出了一個便宜的 DAC。
V_avg = D × V_supply (D = duty cycle, 0…1)
工作週期與頻率是兩個獨立的旋鈕,常被搞混。工作週期決定平均電位(亮度、轉速);頻率決定開關循環重複的快慢——要選得夠高,讓負載與你的耳朵都跟不上一個個脈衝。
又称
另见