求一个8位PWM控制LED亮度的方法
诚心请教前辈:如题,用8位单片机的PWM控制LED亮度,亮度在128级(最好64或32级)内,如何实现线性平滑由暗到亮(或由亮到暗)没有闪烁感?
帮顶,等高手来 一个8位PWM,占空比0-255可调 8位做不了很平滑的调整.至少10位以上.如果能16位更好.查表分200段就行了. 8位占空比的pwm似乎只能做到10级线性亮度 hhjjstu 发表于 2016-5-7 20:22
一个8位PWM,占空比0-255可调
你实际调一下就知道不是你想像中的那样0-255连续的亮度.在低亮的时候,PWM每加一个值,LED灯明显亮了很多(就感觉跳上去的一样).而在高亮的时候,你加一个PWM值跟没加一样加10个都没感觉.
所以要用很高的分辩率,在低亮的时候PWM一个一个加,然后线性的灯越亮,PWM加的越多.这样就可以做到全量程都很线性.眼睛看起来非常舒服和柔合. 记得论坛里有个贴出了例子,不用那么高分辨率,照样实现平滑 chenchaoting 发表于 2016-5-7 21:35
记得论坛里有个贴出了例子,不用那么高分辨率,照样实现平滑
在低亮度的时候,分辩率低了没办法消除跳动感的,就是LZ说的闪烁感. 117433525 发表于 2016-5-7 21:37
在低亮度的时候,分辩率低了没办法消除跳动感的,就是LZ说的闪烁感.
那个帖子是用其他方法,间接提高分辨率,我找找看 http://www.amobbs.com/thread-5635609-1-1.html ,看这个帖子,是否对你有帮助 chenchaoting 发表于 2016-5-7 21:58
http://www.amobbs.com/thread-5635609-1-1.html ,看这个帖子,是否对你有帮助
这个好,不过用到了中断,如果要输出三路PWM分别控制RGB的话,还有至少一个定时中断,会占用CPU过多时间吗? 查表和线性拟合 这种不就是呼吸灯吗? wcl_0308 发表于 2016-5-7 22:59
查表和线性拟合
能说具体点吗? guyue180 发表于 2016-5-7 23:07
这种不就是呼吸灯吗?
应该差不多吧 现在有很多控制LED的恒流芯片,能支持8位,12位,16位的都有,具体型号马上想不起来,你查查天微,绿联这两个厂家,使用这类型的芯片控制也简单,效果也比较平滑 {:smile:}支持一下{:smile:} 8位做过20来段就不好做了 加上gama校正就好了 考虑用改变脉冲频率替代调整脉冲宽度的方法试试,不知可行否? 加快频率,可以减轻闪烁,占空比的任意细分 是用STC的高速脉冲输出功能,需要增加亮度时提高输出脉冲的频率。
页:
[1]