今天要讲的是4G模组PWM的威廉希尔官方网站 精要,以常用的合宙Air724UG为例做出示例分享给大家。
一、简介
1.1pwm是什么
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对interwetten与威廉的赔率体系 电路进行控制的一种非常有效的威廉希尔官方网站 ,广泛应用在从测量、通信到功率控制与变换的许多领域中。
PWM 的相关参数:
PWM 的频率:
是指 1 秒钟内信号从高电平到低电平再回到高电平的次数(一个周期),也就是说一秒钟 PWM 有多少个周期 单位:Hz
PWM 的周期:
T=1/f 周期=1/频率 例:如果频率为 50Hz ,也就是说一个周期是 20ms,那么一秒钟就有 50 次 PWM 周期 3. PWM 的占空比:是一个脉冲周期内,高电平的时间占整个周期时间的比例 单位:% (0%-100%) 例:一个周期 10ms,高电平占 8ms,那么此占空比就是 8/10=80%
1.2pwm 原理
单片机的 IO 引脚输出的是数字信号,且只能输出 1 和 0,那如果 TTL 电平中,高电平为 5V,低电平为 0V,但是我们想要输出不同的模拟电压,比如输出 3.75V 应该怎么操作?
此时要用到 PWM,通过改变 IO 口输出方波的占空比,得到不同的模拟电压。3.75/5=0.75 ,也就是高电平时间占整个周期的 75%,即占空比为 75%,可得到平均电压 3.75V.
注意上图中蓝线,代表着输出的模拟电压,占空比越大,则模拟电压也越大。
1.3 Air724UG pwm 说明
查阅 Air724UG 模块硬件设计手册:
https://docs.openluat.com/air724ug/product/
PWM_PWT_OUT 的时钟基于 APB 时钟,主时钟是 200Mhz,通过配置 pwt 寄存器的 PWT_Period 和PWT_Duty 来控制 pwm 的输出
PWM_LPG_OUT(Light Pulse Generation)用于低频率的应用如驱动 LED 闪烁。
下面是频率和占空比可以选择的取值范围:
周期范围:
125ms,250ms,500ms,1000ms,1500ms,2000ms,2500ms, 3000ms
选择对应的时间,输出的波形周期也与之对应。
高电平时间:
15.6ms, 31.2ms, 46.8ms, 62ms, 78ms, 94ms, 110ms, 125ms, 140ms, 156ms, 172ms, 188ms,
200ms, 218ms, 243ms
选择对应高电平时间,输出在当前周期内的高电平。
二、演示功能概述
本教程教你如何使用开发板输出 PWM 功能。
功能定义:
1. 使用 PWM 引脚输出脉宽调制信号
2. 驱动开发板指示灯,呼吸灯演示
三、准备硬件环境
3.1 开发板准备
使用 EVB_Air724 开发板,如下图所示:
此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/
Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。
api文档:
https://doc.openluat.com/wiki/21?wiki_page_id=2068
3.2 数据通信线
USB 数据线一根(micro USB)。
3.3 PC 电脑
WIN7 以及以上版本的 WINDOWS 系统。
3.4 组装硬件环境
USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,如下图所示。
四、准备软件环境
4.1 下载调试工具
使用说明参考:
Luatools 下载和详细使用
https://docs.openluat.com/Luatools/
4.2 源码及固件
1、底层 core 下载
下载底层固件,并解压
链接:
https://docs.openluat.com/air724ug/luatos/firmware/
如下图所示,红框的是我们要使用到的
2、 本教程使用的 demo 见附件:
https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/pwm呼吸灯
4.3 下载固件和脚本到开发板中
打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。
点击项目管理测试选项。
进入管理界面,如下图所示。
点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中
点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。
点击下载底层和脚本,下载完成如下图所示。
五、代码示例介绍
5.1 PWM 接口说明
本例使用 Air724 的 49 管脚,即 PWM_PWT_OUT GPIO_5 pwm 通道 id=0,控制开发板上的红色电源指示灯。
开启 pwm 通道的 pwm 输出,设置不同的占空比,小灯会有不同的亮度,原理图如图所示。
5.2 breathingLight.lua 代码
打开并且配置 PWM 函数 misc.openPwm(0, 512, y) 说明
--0:gpio5, 1:gpio13
--p1 周期 0-1024
--p2 占空比 0-512
5.3 main.lua 代码
本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,然后加载加载功能测试模块。
六、开机展示
连接好硬件并下载固件后,重启开发板观察指示灯的变化,如下图所示。
七、常见问题
1、为什么 gpio13 输出是低频波形吗?
gpio13 只能输出低频 pwm 波形。
2、为什么配置后输出没波形?
答:看通道是否配置正确,gpio 口是否被占用。
3、PWM 的信号的频率如何选择?
频率的选择通常取决于具体应用,根据自己的项目需要来选择:
(1)电机控制:常用频率为 1 kHz 到 20 kHz,以确保足够的反应速度和控制精度。
(2)LED 调光:频率通常在 1 kHz 以上,以避免人眼感知到闪烁。
(3)音频信号:频率设置应高于音频信号的最高频率(例如,至少为 20 kHz)。
分享完毕,欢迎关注
-
PWM
+关注
关注
114文章
5181浏览量
213810 -
脉宽调制
+关注
关注
3文章
218浏览量
38305 -
开发板
+关注
关注
25文章
5033浏览量
97378 -
模组
+关注
关注
6文章
1488浏览量
30364
发布评论请先 登录
相关推荐
评论