||
PWM作為一種靈活且高效的信號調(diào)制手段,在電氣設(shè)備的性能控制和調(diào)節(jié)中發(fā)揮著重要作用,常用于電機控制、燈光調(diào)光、音頻信號生成、加熱控制等應(yīng)用。
本文將以低功耗4G模組Air780E為例,展示PWM(脈沖寬度調(diào)制)輸出呼吸燈的實現(xiàn)方法,幫助大家深入理解如何在項目中應(yīng)用PWM技術(shù)。
一、PWM概述
1.1 pwm是什么
脈沖寬度調(diào)制PWM,是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù)。
PWM具有高效、控制精度高及實現(xiàn)簡便等優(yōu)點,但PWM信號可能產(chǎn)生高頻噪聲,需要濾波以減小干擾。另外,某些應(yīng)用需要特定的硬件支持,如支持PWM輸入的微控制器或電路。
要想使用PWM,還需先了解PWM的相關(guān)參數(shù):
1s=1000ms,那么一秒鐘就有50次PWM周期。
1.2 PWM原理
單片機的IO引腳輸出的是數(shù)字信號,且只能輸出1和0。那如果TTL電平中,高電平為5V,低電平為0V,但是我們想要輸出不同的模擬電壓,比如輸出3.75V應(yīng)該怎么操作?
此時要用到PWM,通過改變IO口輸出方波的占空比,得到不同的模擬電壓。
3.75/5=0.75,也就是高電平時間占整個周期的75%,即占空比為75%,可得到模擬電壓3.75V。
注意上圖中藍線,代表著輸出的模擬電壓,占空比越大,則模擬電壓也越大。
1.3 PWM通道說明
詳見Air780E產(chǎn)品手冊GPIO復(fù)用表:
https://docs.openluat.com/air780e/product/
當(dāng)前版本為:
《Air780E_GPIO_table_20240812.pdf》
由上方GPIO復(fù)用表可知:
Air780E的實際可用PWM通道有4個(0/1/2/4), 但每個都有3種配置。
PWM3/PWM5已經(jīng)被底層使用,例如PWM1和PWM11都使用硬件通道1,只能選其中一個使用。啟用PWM1就不能啟用PWM11,調(diào)用PWM庫的API時,填軟件通道id。
相關(guān)注意事項:
軟件通道10/11/12/14需要V1002以上的固件,即20221219之后編譯的版本。
軟件通道20/21/22需要V1016以上的固件,即20230330之后編譯的版本。
上述映射是固定的,mcu.iomux也沒有配置項, 而且已經(jīng)枚舉了全部可用PWM通道。
二、演示功能概述
接下來本文將用兩個示例,演示如何使用Air780E的PWM功能:
PWM輸出:
控制Air780E核心板pwm4通道的pwm輸出,設(shè)置不同的占空比,讓小燈有不同的亮度;
呼吸燈效果:
使用Air780E核心板的pwm1通道,外接發(fā)光二極管來查看呼吸燈效果。
三、準(zhǔn)備硬件環(huán)境
本文使用Air780E核心板進行演示;
3.2 數(shù)據(jù)通信線
USB轉(zhuǎn)Type-C數(shù)據(jù)線一根;
四、準(zhǔn)備軟件環(huán)境
4.1 下載調(diào)試工具
https://docs.openluat.com/Luatools/
4.2 源碼及固件
最新固件下載:
https://docs.openluat.com/air780e/luatos/firmware/
固件詳見core_V1112壓縮包:
LuatOS-SoC_V1112_EC618_FULL.soc
最新demo源碼下載:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/pwm
五、PWM軟硬件資料
本教程使用API接口詳見:
https://wiki.luatos.com/api/pwm.html?highlight=pwm
5.2 Air780E燒錄說明
將Air780E通過USB數(shù)據(jù)線連接電腦:
1)按住下載模式按鍵(boot 鍵)不放,同時再長按開機鍵開機,這時開發(fā)板會進入下載模式,Luatools下載進度條會開始跑,這時可以松開boot按鍵。直到工具提示下載完成。
2)如果未能成功進入下載模式,而是進入正常開機模式,這時可以按住 boot 鍵,再短按復(fù)位按鍵,讓開發(fā)板重啟,重新進入下載模式。
如何判斷有沒有進入下載模式:
可以通過PC端的設(shè)備管理器中虛擬出來的USB端口數(shù)量來判斷。
正常開機模式:
下載模式:
本例使用Air780E核心板上的NetLed(網(wǎng)絡(luò)狀態(tài)燈),pwm通道id=4,打開pwm4通道的pwm輸出,設(shè)置不同的占空比,小燈會有不同的亮度。
6.1.1 代碼介紹
6.1.2 效果展示
本例使用Air780E核心板的pwm1通道,外接發(fā)光二極管來查看呼吸燈效果:
呼吸燈效果就是小燈由亮到暗逐漸變化,很有節(jié)奏感地一起一伏,”感覺,好像人在呼吸“,我們可以通過不斷調(diào)高占空比讓小燈一點點亮起,再不斷調(diào)低占空比讓小燈一點點熄滅從而達到此效果。
6.2.1 硬件接線
GPIO24 --------發(fā)光二極管正極
GND -----------發(fā)光二極管負極
6.2.2 代碼介紹
外接發(fā)光二極管,效果如下圖所示:
也可用Air780E核心板上的NetLed(網(wǎng)絡(luò)狀態(tài)燈)來觀察呼吸燈效果,但demo里的PWM通道要改成相應(yīng)的id,可查看上文的PWM通道說明。
我們通過示波器查看PWM的輸出波形,可以看到占空比在10%-90%之間變化。
七、常見問題
1. 如何驗證所產(chǎn)生的PWM信號?
可以使用示波器檢測PWM輸出,查看頻率、占空比和波形的完整性。確保波形按照設(shè)計參數(shù)正常工作,必要時進行調(diào)整。
2. PWM的信號的頻率如何選擇?
頻率的選擇通常取決于具體應(yīng)用,根據(jù)自己的項目需要來選擇:
電機控制:常用頻率為1kHz到20kHz,以確保足夠的反應(yīng)速度和控制精度。
LED調(diào)光:頻率通常在1kHz以上,以避免人眼感知到閃爍。
音頻信號:頻率設(shè)置應(yīng)高于音頻信號的最高頻率(例如,至少為20kHz)
3. 什么是占空比,如何計算PWM的占空比?
占空比即是一個脈沖周期內(nèi),高電平的時間占整個周期。
例如:
如果PWM信號的高電平時間為2ms,周期為10ms。
則:占空比 = (2 / 10) × 100 = 20%
今天的內(nèi)容就分享到這里了~