博客專欄

EEPW首頁(yè) > 博客 > 新手黨看這篇!Air724UG軟件指南:PWM示例

新手黨看這篇!Air724UG軟件指南:PWM示例

發(fā)布人:13673998452 時(shí)間:2025-01-26 來源:工程師 發(fā)布文章

一、簡(jiǎn)介


1.1 pwm是什么

脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。


PWM 的相關(guān)參數(shù):

1、PWM 的頻率: 是指 1 秒鐘內(nèi)信號(hào)從高電平到低電平再回到高電平的次數(shù)(一個(gè)周期),也就是說一秒鐘 PWM 有多少個(gè)周期 單位:Hz/

2、PWM 的周期: T=1/f 周期=1/頻率 例:如果頻率為 50Hz ,也就是說一個(gè)周期是 20ms,那么一秒鐘就有 50 次 PWM 周期

3、PWM 的占空比: 是一個(gè)脈沖周期內(nèi),高電平的時(shí)間占整個(gè)周期時(shí)間的比例 單位: % (0%-100%) 例:一個(gè)周期 10ms,高電平占 8ms,那么此占空比就是 8/10=80%


PWM 的頻率:

是指 1 秒鐘內(nèi)信號(hào)從高電平到低電平再回到高電平的次數(shù)(一個(gè)周期),也就是說一秒鐘 PWM 有多少個(gè)周期 單位:Hz


PWM 的周期:

T=1/f 周期=1/頻率 例:如果頻率為 50Hz ,也就是說一個(gè)周期是 20ms,那么一秒鐘就有 50 次 PWM 周期 3. PWM 的占空比:是一個(gè)脈沖周期內(nèi),高電平的時(shí)間占整個(gè)周期時(shí)間的比例 單位:% (0%-100%) 例:一個(gè)周期 10ms,高電平占 8ms,那么此占空比就是 8/10=80%


1.2 pwm 原理

單片機(jī)的 IO 引腳輸出的是數(shù)字信號(hào),且只能輸出 1 和 0,那如果 TTL 電平中,高電平為 5V,低電平為 0V,但是我們想要輸出不同的模擬電壓,比如輸出 3.75V 應(yīng)該怎么操作?

此時(shí)要用到 PWM,通過改變 IO 口輸出方波的占空比,得到不同的模擬電壓。3.75/5=0.75 ,也就是高電平時(shí)間占整個(gè)周期的 75%,即占空比為 75%,可得到平均電壓 3.75V. 

image.png


注意上圖中藍(lán)線,代表著輸出的模擬電壓,占空比越大,則模擬電壓也越大。


1.3 Air724UG pwm 說明

查閱 Air724UG 模塊硬件設(shè)計(jì)手冊(cè):

https://docs.openluat.com/air724ug/product/

image.png


PWM_PWT_OUT 的時(shí)鐘基于 APB 時(shí)鐘,主時(shí)鐘是 200Mhz,通過配置 pwt 寄存器的 PWT_Period 和PWT_Duty 來控制 pwm 的輸出

PWM_LPG_OUT(Light Pulse Generation)用于低頻率的應(yīng)用如驅(qū)動(dòng) LED 閃爍。

下面是頻率和占空比可以選擇的取值范圍:

周期范圍:

125ms,250ms,500ms,1000ms,1500ms,2000ms,2500ms, 3000ms

選擇對(duì)應(yīng)的時(shí)間,輸出的波形周期也與之對(duì)應(yīng)。

高電平時(shí)間:

15.6ms, 31.2ms, 46.8ms, 62ms, 78ms, 94ms, 110ms, 125ms, 140ms, 156ms, 172ms, 188ms,

200ms, 218ms, 243ms

選擇對(duì)應(yīng)高電平時(shí)間,輸出在當(dāng)前周期內(nèi)的高電平。


二、演示功能概述

本教程教你如何使用開發(fā)板輸出 PWM 功能。

功能定義:

1. 使用 PWM 引腳輸出脈寬調(diào)制信號(hào)

2. 驅(qū)動(dòng)開發(fā)板指示燈,呼吸燈演示


三、準(zhǔn)備硬件環(huán)境


3.1 開發(fā)板準(zhǔn)備

使用 EVB_Air724 開發(fā)板,如下圖所示:


image.png3.2 數(shù)據(jù)通信線

USB 數(shù)據(jù)線一根(micro USB)。


3.3 PC 電腦

WIN7 以及以上版本的 WINDOWS 系統(tǒng)。


3.4 組裝硬件環(huán)境

USB 數(shù)據(jù)線插入 USB 口,另一端與電腦相連,撥碼開關(guān)全部撥到 ON,串口切換開關(guān)選擇 UART1,USB 供電的 4V 對(duì)應(yīng)開關(guān)撥至 ON 檔,如下圖所示。


image.png


四、準(zhǔn)備軟件環(huán)境


4.1 下載調(diào)試工具

使用說明參考:

Luatools 下載和詳細(xì)使用

https://docs.openluat.com/Luatools/


4.2 源碼及固件


1、底層 core 下載

下載底層固件,并解壓

鏈接:

https://docs.openluat.com/air724ug/luatos/firmware/

如下圖所示,紅框的是我們要使用到的

image.png

2、 本教程使用的 demo 見附件:

https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/pwm呼吸燈


4.3 下載固件和腳本到開發(fā)板中

打開 Luatools,開發(fā)板上電開機(jī),如開機(jī)成功 Luatools 會(huì)打印如下信息。

image.png


點(diǎn)擊項(xiàng)目管理測(cè)試選項(xiàng)。

image.png


進(jìn)入管理界面,如下圖所示。

image.png



點(diǎn)擊選擇文件,選擇底層固件,我的文件放在 D:\luatOS\Air724 路徑中

image.png


點(diǎn)擊增加腳本或資源文件,選擇之前下載的程序源碼,如下圖所示。

image.png


點(diǎn)擊下載底層和腳本,下載完成如下圖所示。

image.png



五、代碼示例介紹


5.1 PWM 接口說明

本例使用 Air724 的 49 管腳,即 PWM_PWT_OUT GPIO_5 pwm 通道 id=0,控制開發(fā)板上的紅色電源指示燈。

開啟 pwm 通道的 pwm 輸出,設(shè)置不同的占空比,小燈會(huì)有不同的亮度,原理圖如圖所示。

image.png


5.2 breathingLight.lua 代碼

打開并且配置 PWM 函數(shù) misc.openPwm(0, 512, y) 說明

--0:gpio5, 1:gpio13

--p1 周期 0-1024

--p2 占空比 0-512


image.png

5.3 main.lua 代碼

本代碼為主程序腳本,系統(tǒng)啟動(dòng)后首先會(huì)對(duì) 4G 網(wǎng)絡(luò)進(jìn)行配置,然后加載加載功能測(cè)試模塊。


六、開機(jī)展示

連接好硬件并下載固件后,重啟開發(fā)板觀察指示燈的變化,如下圖所示。


七、常見問題


1、為什么 gpio13 輸出是低頻波形嗎?

gpio13 只能輸出低頻 pwm 波形。


2、為什么配置后輸出沒波形?

答:看通道是否配置正確,gpio 口是否被占用。


3、PWM 的信號(hào)的頻率如何選擇?

頻率的選擇通常取決于具體應(yīng)用,根據(jù)自己的項(xiàng)目需要來選擇:

(1)電機(jī)控制:常用頻率為 1 kHz 到 20 kHz,以確保足夠的反應(yīng)速度和控制精度。

(2)LED 調(diào)光:頻率通常在 1 kHz 以上,以避免人眼感知到閃爍。

(3)音頻信號(hào):頻率設(shè)置應(yīng)高于音頻信號(hào)的最高頻率(例如,至少為 20 kHz)。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉