我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2005|回复: 22

[技术文章] 灵动微电子MM32L0系列芯片做呼吸灯功能

[复制链接]

该用户从未签到

540

主题

20

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2021-2-1 16:00:24 | 显示全部楼层 |阅读模式
呼吸灯,就是指电子产品上的LED灯的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减,有节奏感地一起一伏,就像是在呼吸一样,因而被广泛应用于手机、电脑等电子设备的指示灯中。在使用MCU开发相关的应用产品中也可以加入呼吸灯功能,增强用户的体验感,在本实验中
灵动微电子
一级代理英尚微将介绍如何使用MM32L0系列产品芯片做呼吸灯功能。


在平时应用中可以知道,MCU的GPIO输出高低电平变化可以实现LED灯的亮、灭两个过程,如果GPIO的电平一直维持高电平或者低电平,LED灯就处于长亮或长灭的状态,呼吸灯就是通过较高频率的电平变化来实现亮灭的切换,由于人的视觉暂留效应,肉眼无法迅速捕捉快速亮灭变化的过程,所以在视觉中一直出现一直亮或者灭的状态,通过调整占空比可以控制LED灯的亮度,给人视觉上一种灯光由暗到亮逐渐增强,然后又由亮到暗逐渐衰减。


正常的成年人的吸气呼气时间整个过程持续大约3秒时间,即吸气时间(LED灯亮度逐渐变亮)时间为1.5S,吸、呼气时间(LED灯亮度逐渐变暗)时间为1.5S。


亮度随着时间逐渐变强再衰减,可以用两种算数方式实现:半周期的正弦函数曲线和指数上升曲线及对称的下降沿曲线。

指数方式曲线图

要控制LED灯达到呼吸灯的效果,实际上就是要控制LED灯的亮度拟合呼吸特性曲线,在本次实验将采用指数上升曲线及对称的下降沿曲线方式,用户如果对正弦方式感兴趣也可以进行尝试。在本次实验中,我们使用
MM32L0
输出较高频率的PWM信号,通过调制信号的占空比,控制LED灯的亮度。


生成指数方式的曲线图主要因素:

TIMPeriod:定时器的计数周期,它的值必须与PWM表中的极大值相等(应用中赋值需要减1),而PWM表的极大值决定了控制的分辨率。例如极大值为10时,PWM占空比只有10个等级精确到0.1,当极大值为1000时,PWM占空比1000个等级精确到0.001。在本次实验中设置定时器的计数周期值为255+1,即PWM表中的极大值也是256。


TIM_Prescaler:定时器时钟分频因子,它控制定时器计数器CNT计数加1所需要的时间,它的值太大会导致输出的单个PWM波周期过长,影响控制的动态特性。如控制LED灯时,该值太大会导致LED灯开关时间变长,闪烁明显。一般来说该值越小越好。在本次实验中设置定时器时钟分频因子为1757+1,即对时钟1758分频。


PWM表的点数:PWM表的点数即对拟合曲线的采样点数,即把LED灯的亮度分为0-255个等级,采样点越多,能更好地还原拟合曲线,采样点太少,可能会导致失真。在本次实验中设置PWM表的点数为40。


Period_class:周期倍数,即PWM表中每个元素的循环次数,它影响拟合曲线的周期。在本次实验中设置设置周期倍数为8。


本次实验程序直接从MM32L073的定时器PWM输出的例程的基础上修改得来,TIM3配置成向上计数,PWM通道输出也被配置成当计数器CNT的值小于输出比较寄存CCR1的值时,PWM通道输出低电平点亮LED灯。在函数的最后还使能了定时器中断,每当定时器的一个计数周期完成时产生中断,配合中断服务函数,即可切换CCR1比较寄存器的值。


使用MM32L0系列MCU上述两种方式都可以实现呼吸灯功能,两种方法GPIO分别是PB4和PB5,download到MiniBoard中,可以对比测试两种实现方法的差异性,选择合适的呼吸灯实现方式。


MM32L0xx.pdf (2.81 MB, 下载次数: 3)
回复

使用道具 举报

该用户从未签到

12

主题

7221

回帖

100

积分

游客

积分
100

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2021-2-1 21:12:15 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

171

回帖

0

积分

二级逆天

积分
0

终身成就奖特殊贡献奖原创先锋奖

发表于 2021-2-1 23:26:32 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    慵懒
    昨天 16:16
  • 签到天数: 120 天

    [LV.7]常住居民III

    82

    主题

    1万

    回帖

    1万

    积分

    三级逆天

    积分
    10239

    社区居民社区劳模原创先锋奖终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2021-2-2 00:37:26 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6740

    回帖

    3

    积分

    二级逆天

    积分
    3

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2021-2-2 07:58:20 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 42 天

    [LV.5]常住居民I

    6

    主题

    1万

    回帖

    2万

    积分

    三级逆天

    积分
    20512

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2021-2-2 08:01:27 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    2183

    回帖

    10

    积分

    二级逆天

    积分
    10

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2021-2-2 08:06:34 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    76

    主题

    2895

    回帖

    84

    积分

    二级逆天

    积分
    84

    终身成就奖社区居民优秀斑竹奖

    QQ
    发表于 2021-2-2 08:10:11 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    61

    主题

    2233

    回帖

    50

    积分

    二级逆天

    积分
    50

    终身成就奖特殊贡献奖优秀斑竹奖

    发表于 2021-2-2 08:18:51 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-3 11:14
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    52

    主题

    2981

    回帖

    1338

    积分

    1元学习Allegro(1期)

    积分
    1338

    社区居民终身成就奖特殊贡献奖优秀斑竹奖

    发表于 2021-2-2 08:32:59 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表