乐趣区

关于单片机:灵动微电子MM32L0系列芯片做呼吸灯功能

呼吸灯就是指电子产品上的 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 中,能够比照测试两种实现办法的差异性,抉择适合的呼吸灯实现形式。

退出移动版