|
[资料]
深度讨论RGB,真的够深吗?
36
29130
楼主

初来乍到,最近正巧也在研究RGB,看到这个帖子,想来说两句。
原帖:http://www.pcwaishe.cn/thread-661803-1-1.html
首先,通过电流控制亮度,是没问题的,但是有一个严重的缺陷,LED是电流控制的,而不同电流的色彩直线度很差,具体可以找任何一个LED的技术手册翻看一下,比如说一个LED的额定电流是20ma,就是推荐用的电流大小,那我们认为20ma是100%亮度,但是10ma不是50%亮度,可能是55%或者是45%,具体要看LED技术手册上的曲线。所以用来混色的话色彩会很不准确。
电流控制是很早起的控制led的方式,现在我们用pwm方式控制,什么是pwm呢?简单来说PWM是一种脉冲控制方式。首先人眼的反应速度是每秒24帧,这个大家都知道吧,超过每秒24帧人眼就会将静止的多张图片变成动画,因为人眼有残影效应。所以LED调光跟看电影一个道理,PWM是在一个周期里开关LED,假设在256个连续的时间单位点上,只开了1个单位的时间,那么LED在这256个时间周期内,亮度是256分之1。只要这个256个时间周期开关的过程超过每秒24次,那么人眼就分辨不出来了,也就是说想要LED调光,需要256 * 24 分之一秒的时间开关一次的能力。
PWM是个非常成熟的技术,像很多设备控制都是PWM方式,比电流精确太多了。
那什么主控可以达到这种看似很难的能力呢??首先LED的响应速度可以忽略不计,微秒级别的。也就是说LED通电,几个顶多几十个微妙(1微秒等于百万分之一秒)就能够达到最大亮度。以我们比较常用的32u4芯片或者其他芯片,我用的stm32F103系列。以stm32F103举例(我比较熟)这款芯片的IO口极限开关能力是18MHz,好吧,有点夸张了,而且是极限情况下的,我们打个折扣,1MHz吧,翻译下就是每秒钟开关1000000次,这么多0慢慢数。
以上所述,大家也大概了解了PWM很容易就可以搞定LED,别说256级,加个零也是可以的。剩下的就是要不要的问题了,在就是大家说的人的眼睛够用吗?
下面再说下功率问题,我们已经用了PWM方式来控制,假设LED额定电流20ma。我们有3颗R,G,B,当是白色时,RGB全部最大亮度,那么需要60ma,如果是红色,那么只需要20ma,如果是黄色,那么就是40ma,那么如果是灰色呢?上面说过,pwm是在一个周期内开关LED,那么开的时候肯定需要20ma,那关了就不需要了呗。所以只要错开通电时间,理论上灰色只需要20ma也是可以实现的。这是一方面,另一方面,所有键盘的RGB可以通过轮询的方式逐列来亮,因为我们的控制能力完全可以胜任,但是会牺牲一些亮度,比如说16列,256级亮度,60帧,那么我们需要,如果每列6盏RGB,那么同一时间极限的能耗是18*20ma,也就是360ma,但是LED只能达到16分之一的最大亮度,但是变色级别不会有任何牺牲。这就是一个权衡的问题。
今天太晚了,看大家怎么说我再慢慢回复
|
评分
-
查看全部评分
|