0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4G模组PWM调光入门:打造个性化呼吸灯

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-11-17 09:56 次阅读

一直有朋友问我怎么打造个性化呼吸灯,本文我将以合宙低功耗4G模组经典型号——Air780E为例,展示PWM输出呼吸灯的实现方法,帮助大家深入理解如何在项目中应用PWM技术。

一、PWM概述

1.1 PWM是什么

脉冲宽度调制PWM,是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。

PWM具有高效、控制精度高及实现简便等优点,但PWM信号可能产生高频噪声,需要滤波以减小干扰。另外,某些应用需要特定的硬件支持,如支持PWM输入的微控制器或电路。

要想使用PWM,还需先了解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。

wKgaoWcxdjmAWyG5AABg8_ZhzPQ283.png

注意上图中蓝线,代表着输出的模拟电压,占空比越大,则模拟电压也越大。

1.3 PWM通道说明

详见Air780E产品手册GPIO复用表:
https://docs.openluat.com/air780e/product/

当前版本为:

《Air780E_GPIO_table_20240812.pdf》

wKgZoWcxdkqAfh83AALqhq3BL18920.png

由上方GPIO复用表可知:

Air780E的实际可用PWM通道有4个(0/1/2/4), 但每个都有3种配置。

PWM3/PWM5已经被底层使用,例如PWM1和PWM11都使用硬件通道1,只能选其中一个使用。启用PWM1就不能启用PWM11,调用PWM库的API时,填软件通道id。

相关注意事项:

软件通道10/11/12/14需要V1002以上的固件,即20221219之后编译的版本。

软件通道20/21/22需要V1016以上的固件,即20230330之后编译的版本。

上述映射是固定的,mcu.iomux也没有配置项, 而且已经枚举了全部可用PWM通道。

二、演示功能概述

接下来本文将用两个示例,演示如何使用Air780E的PWM功能:

PWM输出:

控制Air780E核心板pwm4通道的pwm输出,设置不同的占空比,让小灯有不同的亮度;

呼吸灯效果:

使用Air780E核心板的pwm1通道,外接发光二极管来查看呼吸灯效果。

三、准备硬件环境

3.1 开发板准备

本文使用Air780E核心板进行演示:

wKgZoWcxdmyAZROEAAuqC_pDCPA691.png

详见Air780E产品手册开发板使用说明:
https://docs.openluat.com/air780e/product/

写这篇文章时最新版本的使用说明为:
<<开发板Core_Air780E使用说明 V1.0.5.pdf>>

核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。

3.2 数据通信线

USBType-C数据线一根;

3.3 PC电脑

Win7及其以上版本的Windows系统。

四、准备软件环境

4.1 下载调试工具

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

4.2 源码及固件

最新固件下载:
https://docs.openluat.com/air780e/luatos/firmware/

固件详见core_V1112压缩包:
LuatOS-SoC_V1112_EC618_FULL.soc

wKgaomcxdoaAHs2fAAHWUJEnnJ8989.png

最新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烧录说明

wKgaomcxdqaAMInrAAq3DdROL3w352.png

将Air780E通过USB数据线连接电脑:

1)按住下载模式按键(boot 键)不放,同时再长按开机键开机,这时开发板会进入下载模式,Luatools下载进度条会开始跑,这时可以松开boot按键。直到工具提示下载完成。

2)如果未能成功进入下载模式,而是进入正常开机模式,这时可以按住 boot 键,再短按复位按键,让开发板重启,重新进入下载模式。

如何判断有没有进入下载模式:
可以通过PC端的设备管理器中虚拟出来的USB端口数量来判断。

正常开机模式:

wKgZomcxdrKAPUd1AAGnc4e4gBY642.png

下载模式:

wKgZomcxdr2AeaOVAAFmXbXTUns153.png

六、代码示例介绍

6.1 PWM输出

本例使用Air780E核心板上的NetLed网络状态灯),pwm通道id=4,打开pwm4通道的pwm输出,设置不同的占空比,小灯会有不同的亮度。

6.1.1 代码介绍

wKgaomcxdtKAd2QLAATRwv-V9oc765.png

6.1.2 效果展示

wKgZomcxduSAMDK4AAWmk-WZgcI311.png

6.2 呼吸灯效果

本例使用Air780E核心板的pwm1通道,外接发光二极管来查看呼吸灯效果:

呼吸灯效果就是小灯由亮到暗逐渐变化,很有节奏感地一起一伏,”感觉,好像人在呼吸“,我们可以通过不断调高占空比让小灯一点点亮起,再不断调低占空比让小灯一点点熄灭从而达到此效果。

6.2.1 硬件接线

GPIO24 --------发光二极管正极

GND -----------发光二极管负极

wKgZomcxdviABWZhAAWNzcMATIc156.png

6.2.2 代码介绍

wKgZoWcxdwaARkI-AAPOqGCMjxY077.png

6.2.3 效果展示

外接发光二极管,效果如下图所示:

wKgZoWcxdxyACwzmAAqP7-0EB5Y439.png

也可用Air780E核心板上的NetLed(网络状态灯)来观察呼吸灯效果,但demo里的PWM通道要改成相应的id,可查看上文的PWM通道说明。

我们通过示波器查看PWM的输出波形,可以看到占空比在10%-90%之间变化。

wKgZoWcxdyqALiQsAA5lW7fmZ4M119.png

七、常见问题

1. 如何验证所产生的PWM信号?

可以使用示波器检测PWM输出,查看频率、占空比和波形的完整性。确保波形按照设计参数正常工作,必要时进行调整。

2. PWM的信号的频率如何选择?

频率的选择通常取决于具体应用,根据自己的项目需要来选择:

电机控制常用频率为1kHz到20kHz,以确保足够的反应速度和控制精度。

LED调光:频率通常在1kHz以上,以避免人眼感知到闪烁。

音频信号:频率设置应高于音频信号的最高频率(例如,至少为20kHz)。

3. 什么是占空比,如何计算PWM的占空比?

占空比即是一个脉冲周期内,高电平的时间占整个周期。

例如:
如果PWM信号的高电平时间为2ms,周期为10ms。
则:占空比 = (2 / 10) × 100 = 20%

今天的内容就分享到这里了

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44554

    浏览量

    634523
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5178

    浏览量

    213775
  • 模组
    +关注

    关注

    6

    文章

    1487

    浏览量

    30359
  • 呼吸灯
    +关注

    关注

    10

    文章

    110

    浏览量

    42721
收藏 人收藏

    评论

    相关推荐

    掌握4G模组PWM|技术精要

    今天要讲的是4G模组PWM的技术精要,以常用的合宙Air724UG为例做出示例分享给大家。
    的头像 发表于 12-14 09:40 522次阅读
    掌握<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>PWM</b>|技术精要

    基于STRAIGHT算法的个性化语音生成方法

    【作者】:甘振业;杨鸿武;【来源】:《甘肃科技》2010年04期【摘要】:介绍了一种基于STRAIGHT语音修改算法的个性化语音的方法。对输入的语音提取基本信息,并进行频谱分析;利用STRAIGHT
    发表于 04-23 11:28

    【原创】Android开发—《QQ空间之打造个性化可拉伸头部控件》

    【原创】Android开发—《QQ空间之打造个性化可拉伸头部控件》回复即可获取下载链接[hide=d15]链接:http://pan.baidu.com/s/1mixrCjI 密码:gm25 更多学习资料加Q:1352716312,学习交流群:150923287[/hid
    发表于 06-20 16:57

    【原创】Android开发—QQ空间之打造个性化可拉伸头部控件

    【原创】Android开发—QQ空间之打造个性化可拉伸头部控件回复即可获取下载链接[hide=d15]链接:http://pan.baidu.com/s/1mixrCjI 密码:gm25 更多学习资料加学习交流群:150923287[/hide]
    发表于 06-23 14:22

    MiniPCIE 封装4G模组价值仍在

    。 Strategy Analytics预计,在5G商用时代下,4G模组伴随着成本下降,市场的成熟,其销量将在将于2021年达到峰值33%。4G模块已经广泛应用于车载视频监控、手持执法
    发表于 02-21 11:57

    个性化室内智能照明芯片方案筒灯IC吸顶灯IC调光调色温

    达95%多路共阳抗干扰能力强低灰度时无抖动电感无噪音抖频技术,过认证容易调光曲线平滑与细腻支持PWM调光线性及负载调整率高【个性化室内智能照明芯片方案筒灯IC吸顶灯IC
    发表于 10-20 11:55

    LED家居照明芯片 智慧家庭照明IC 个性化调光调色

    简单平均电流检测模式工作频率可达1MHz25KHz调光频率效率高达95%多路共阳抗干扰能力强低灰度时无抖动电感无噪音抖频技术,过认证容易调光曲线平滑与细腻支持PWM调光线性及负载调整率
    发表于 10-22 17:35

    4G模组

    4G模组:CR100IP-AHD-TF1-1F
    发表于 03-21 20:02 0次下载

    物联网开发之个性化的网关设计分析

    物联网设计的思路是要实现万物互联,所以它的应用面和采用的无线技术非常的广泛,蓝牙、wifi、zigbee、lora、4G等等都可以在不同的应用场合看到它们的身影,这个也同时决定了物联网网关设计的多样性和个性化
    的头像 发表于 04-12 22:38 3905次阅读

    4G模组4G模块是什么?4G模组4G模块的平台?4G模组4G模块怎么选?ASR RDA 高通

    频带宽、通讯灵活性等特性。4G模块就是指硬件设备载入到特定频率段,3GPPP规范的LTE协议书,硬件软件高度集成化模组化通称。硬件设备将
    的头像 发表于 06-07 19:50 1.5w次阅读

    个性化广告推荐系统设计方案及应用

    近年来,随着互联网及智能移动设备的发展和普及,丰富了广告的推送方式和投放平台。但是传统的广告推送无法满足用户对个性化广告的需求,导致用户对广告产生抵触情绪,给广告推送带来极大的挑战。个性化广告
    发表于 03-24 11:21 13次下载
    <b class='flag-5'>个性化</b>广告推荐系统设计方案及应用

    STM32开发入门(三)——呼吸

    STM32开发入门(三)——呼吸
    发表于 12-07 17:36 25次下载
    STM32开发<b class='flag-5'>入门</b>(三)——<b class='flag-5'>呼吸</b><b class='flag-5'>灯</b>

    STM32 使用PWM实现呼吸

    STM32 PWM实现呼吸使用STM32F103ZET6 定时器4 CH2通道产生PWM波,在GPIOD,GPIO_PIN13引脚LED1
    发表于 12-24 19:41 55次下载
    STM32 使用<b class='flag-5'>PWM</b>实现<b class='flag-5'>呼吸</b><b class='flag-5'>灯</b>

    UART通信入门4G模组软件的实践指南

    本文将对4G模组Air724UG软件的UART做出相关示例,希望想了解此模组的朋友们收藏好仔细看。
    的头像 发表于 11-17 00:07 400次阅读
    UART通信<b class='flag-5'>入门</b>:<b class='flag-5'>4G</b><b class='flag-5'>模组</b>软件的实践指南

    4G模组PWM接口:技术实操要点

    今天我们讲解的是4G模组PWM接口的技术实操要点,以我常用的模组Air724UG为例分享出来。
    的头像 发表于 11-20 23:29 231次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>PWM</b>接口:技术实操要点