[技术问答] 音乐节奏灯如何不那么快熄灭,不够丝滑

[复制链接]
2380|14
 楼主| 稳稳の幸福 发表于 2024-6-20 23:12 | 显示全部楼层 |阅读模式
我是检测一次ADC执行一次刷新,发现这样会导致LED闪缩,不丝滑。如何做到丝滑呢?
如何做到缓慢消退这个方法呢?
奔跑的牛 发表于 2024-6-21 16:44 | 显示全部楼层
在每次ADC检测之间,你可以插入一些中间的亮度值,使得LED的亮度在两次ADC检测之间平滑过渡。例如,如果上次ADC检测的结果是100,这次ADC检测的结果是200,那么你可以在两次检测之间插入100, 120, 140, 160, 180, 200这些亮度值,使得LED的亮度平滑过渡。
 楼主| 稳稳の幸福 发表于 2024-6-30 18:23 | 显示全部楼层
奔跑的牛 发表于 2024-6-21 16:44
在每次ADC检测之间,你可以插入一些中间的亮度值,使得LED的亮度在两次ADC检测之间平滑过渡。例如,如果上 ...

懂了,非常感谢。试过了,方法好用。
 楼主| 稳稳の幸福 发表于 2024-6-30 18:26 | 显示全部楼层
奔跑的牛 发表于 2024-6-21 16:44
在每次ADC检测之间,你可以插入一些中间的亮度值,使得LED的亮度在两次ADC检测之间平滑过渡。例如,如果上 ...

在牛版主的讲的基础上我先采用了平均值法,每次检测若干次(通过宏可以指定,我现在用的是10次),然后取平均值,再利用牛版主的方法,将新的值与上次的值相加求平均,发现效果很好。非常感谢提供的思路。
caigang13 发表于 2024-7-4 08:11 来自手机 | 显示全部楼层
要做到平滑就不能直接用ADC的值来控制,要做一下平滑滤波处理。
一只眠羊 发表于 2024-7-9 11:02 | 显示全部楼层
要使LED显示更加丝滑,避免闪烁,可以采用多缓冲技术,应该是可以的
未说出口的像你 发表于 2024-7-9 14:00 | 显示全部楼层
在显示更新时,使用双缓冲技术可以避免直接在显示缓冲区进行写操作,从而减少闪烁。具体做法是先在一个后台缓冲区进行所有的绘图操作,完成后一次性将后台缓冲区的内容复制到前台显示缓冲区。
我吃小朋友 发表于 2024-7-9 16:00 | 显示全部楼层
提高ADC采样和LED刷新的频率,可以减少视觉上的闪烁感。确保ADC采样和LED刷新之间的同步,以避免数据更新时的不连续性。
在曼谷的春 发表于 2024-7-9 18:00 | 显示全部楼层
在更新LED显示时,可以使用平滑算法,如移动平均或低通滤波,来减少显示值的突变。这样可以使得LED的亮度变化更加平滑,减少闪烁。
失物招領 发表于 2024-7-9 20:00 | 显示全部楼层
如果希望LED的亮度缓慢消退,可以使用渐变效果。具体做法是在每次刷新时,将LED的亮度值逐渐减小,而不是直接设置为零。可以通过设置一个递减的步长来实现这一点,步长的大小决定了消退的速度。
月亮一键变蓝 发表于 2024-7-9 22:00 | 显示全部楼层
在ADC输入端添加硬件滤波电路,如RC滤波器,可以减少输入信号的噪声,从而使得ADC采样值更加稳定,减少LED显示的波动。
将爱藏于深海 发表于 2024-7-10 02:00 | 显示全部楼层
在软件层面,可以使用各种滤波算法来处理ADC采样值,如中值滤波、卡尔曼滤波等,以减少噪声对LED显示的影响。
她已醉 发表于 2024-7-10 04:00 | 显示全部楼层
如果LED是通过PWM(脉宽调制)来控制亮度的,可以调整PWM的频率和占空比,以实现更加平滑的亮度变化。
温室雏菊 发表于 2024-7-10 11:00 | 显示全部楼层
使用微控制器的定时器来控制ADC采样和LED刷新的时间间隔,确保它们在固定的时间点进行,这样可以提高系统的稳定性和一致性。
春日负喧 发表于 2024-7-10 14:00 | 显示全部楼层
建议使用高主频的MCU,而且要减少中断,保证驱动LED的时候不被打断才好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

204

主题

3450

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部