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%

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

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

    关注

    6037

    文章

    44558

    浏览量

    635197
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5186

    浏览量

    213913
  • 模组
    +关注

    关注

    6

    文章

    1492

    浏览量

    30383
  • 呼吸灯
    +关注

    关注

    10

    文章

    110

    浏览量

    42727
收藏 人收藏

    评论

    相关推荐

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

    今天要讲的是4G模组PWM的技术精要,以常用的合宙Air724UG为例做出示例分享给大家。
    的头像 发表于 12-14 09:40 618次阅读
    掌握<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 3913次阅读

    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 431次阅读
    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 261次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>PWM</b>接口:技术实操要点