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