PWM脈沖寬度調制——是利用微處理器的數字輸出對模擬電路進行控制的一種非常有效的技術,廣泛應用于測量、通信、功率控制與變換等諸多領域。
日常開發中比較典型的應用場景:
電機控制:
燈光調光:
加熱控制:
本文特別分享PWM相關基礎知識,并以Air8000核心板為例,演示LuatOS開發中如何使用PWM功能實現LED亮度控制及呼吸燈效果,幫助開發者快速上手。

一、PWM相關基礎知識
PWM具有高效、控制精度高及實現簡便等優點,但PWM信號可能產生高頻噪聲,需要濾波以減小干擾。另外,某些應用需要特定的硬件支持,如支持PWM輸入的微控制器或電路。
要想使用PWM,還需先了解PWM的相關參數和原理。
1.1 PWM參數
PWM的頻率:
是指1秒鐘內信號從高電平到低電平再回到高電平的次數(一個周期),也就是說一秒鐘PWM有多少個周期。 單位:Hz。
PWM的周期:
T=1/f周期=1/頻率
例如:
如果頻率為50Hz,T=1/50=0.02s,
也就是說一個周期是20ms;
1s=1000ms,那么一秒鐘就有50次PWM周期。
PWM的占空比:
是一個脈沖周期內,高電平的時間占整個周期時間的比例。單位:% (0%-100%)
例如:
一個周期10ms,高電平占8ms,
那么此占空比就是8/10=80%。
1.2 PWM原理
單片機的IO引腳輸出的是數字信號,且只能輸出1和0,那如果 TTL電平中,高電平為5V,低電平為0V,但是我們想要輸出不同的模擬電壓,比如輸出3.75V應該怎么操作?
此時要用到PWM,通過改變IO口輸出方波的占空比,得到不同的模擬電壓。
3.75/5=0.75,也就是高電平時間占整個周期的75%,即占空比為75%,可得到模擬電壓3.75V。

注意上圖中藍線,代表著輸出的模擬電壓,占空比越大,則模擬電壓也越大。
二、PWM應用示例
Air8000相關管腳具有復用功能,結合原理圖引腳指示可知板載紅色LED由PIN24 GPIO21控制。本示例demo中已有配置好的pins_Air8000.json文件,測試demo時一并燒錄進Air8000核心板。


2.1 PWM輸出示例
本例使用Air8000核心板上的NetLed(網絡狀態燈),pwm通道id=4,打開pwm4通道的pwm輸出,設置不同的占空比,小燈會有不同的亮度。

示例效果如下:

2.2 PWM呼吸燈
本例使用Air8000核心板上的NetLed(網絡狀態燈),pwm通道id=4來查看呼吸燈效果。呼吸燈效果就是小燈由亮到暗逐漸變化,很有節奏感地一起一伏,好像人在呼吸的感覺。
我們可以通過不斷調高占空比讓小燈一點點亮起,再不斷調低占空比讓小燈一點點熄滅從而達到此效果。

示例效果如下:

審核編輯 黃宇
-
led
+關注
關注
243文章
24594瀏覽量
690804 -
PWM
+關注
關注
116文章
5869瀏覽量
225593
發布評論請先 登錄
XZ6920高亮度LED恒流驅動控制芯片,特別適合大功率、多個高亮度LED燈串的應用
探索MAX20090:汽車高壓高亮度LED控制器的卓越之選
【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】基于 PWM(脈寬調制)的 LED 呼吸燈-閃爍燈效果及設備樹理解
FZH367 具有獨立自動呼吸功能的LED(12×16)點陣驅動芯片 原廠技術支持
原廠 FZH365 具有獨立自動呼吸功能的LED(12×12)點陣驅動芯片
【沁恒CH585開發板免費試用體驗】+PWM呼吸燈
LED6001 PWM調光單通道LED驅動器,具有集成增壓控制器數據手冊
PWM經典應用:LED亮度控制及呼吸燈實戰
評論