pwm 脈寬調變是通過改變脈衝訊號的波形來控制模擬量的方法。pwm可以用來控制燈光亮度,電機速度,電源電壓等等。
pwm 訊號是一種脈衝訊號,具有下面幾個特點:
pwm 頻率
pwm訊號的週期是不變的,而高電平的寬度是變化的。
pwm 占空比
pwm 的占空比=100%*(高電平時間)/(脈衝週期)。pwm 的占空比決定了輸出訊號的電壓平均值,占空比高,輸出的平均值就高。使用乙個rc濾波器電路就可以方便地將pwm 訊號轉換成平均值的電訊號。所以pwm是另一種形式的模擬量輸出方式。
mbed os pwmout 類
mbed 提供了pwmout 類,它內部是使用stm32 中的tim 產生pwm 訊號的。所以並不是所有gpio腳都可以輸出pwm訊號的。具體的選擇方式要查詢modular-2 io引腳定義表。
1 建構函式
pwmout()
2 成員函式
write (float value)
寫入當前的占空比。浮點百分比
read()
讀出當前的占空比。浮點百分比
period (float seconds)
設定週期(秒)
period_ms (int ms)
設定週期(豪秒)
period_us (int us)
設定週期(微秒)
pulsewidth (float seconds)
脈衝寬度(秒)
pulsewidth_ms (int ms)
脈衝寬度(毫秒)
pulsewidth_us (int us)
脈衝寬度(微秒)
例子 主機板led燈漸變
modular-2主機板上的雙色燈控制線pc_6和pc_7 支援pwm 輸出,所以可以實現顏色的漸變。pwm 的頻率為100hz(週期為10ms),改變的速度為50hz,每次該變數為1%。
#include "mbed.h"
pwmout myled(pc_7);
int main()
}
值得注意的是,pwmout 是利用stm32 tim 時鐘來實現的,所以並不是所有的gpio都支援pwm 輸出。modular-2 上的使用者led指示燈選擇了具有tim 時鐘輸出的能力(pc6,pc7)。
例2: rgb 燈條漸變
led rgb 燈條是24v 共陽極rgb 彩色led 燈條,我們使用modular-2 的數字io板來控制該燈條實現漸變。
modular-2 使用雙極性電晶體數字輸出io模組,控制彩色led 燈條。
STM32輸出PWM訊號(庫函式版本)
官方解釋 pwm訊號一般指脈衝寬度調製。脈衝寬度調製是一種模擬控制方式,根據相應載荷的變化來調製電晶體基極或mos管柵極的偏置,來實現電晶體或mos管導通時間的改變,從而實現開關穩壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恆定,是利用微處理器的數碼訊號對模擬電路進行控制的一種非...
PWM波形輸出
在學習嵌入式開發板例程時,剛開始的時候不懂pwm波形是怎樣輸出的,後來漸漸的消化了,mark下 stm32 clock init 9 系統時鐘設定 delay init 72 延時初始化 uart init 72,9600 串列埠初始化 led init 初始化與led連線的硬體介面 tim1 pw...
PWM輸出捕獲模式
pwm輸入捕獲模式是輸入捕獲模式的特例,自己理解如下 每個定時器有四個輸入捕獲通道ic1 ic2 ic3 ic4。且ic1 ic2一組,ic3 ic4一組。並且可是設定管腳和暫存器的對應關係。同乙個tix輸入映 兩個icx訊號。這兩個icx訊號分別在相反的極性邊沿有效。兩個邊沿訊號中的乙個被選為觸發...