今天LED满眼都是,几乎每个电路板上都要至少装一个用做状态指示(其实发光数码管也是多个LED组成)、各种显示器的背光、已经深入我们生活各个角落的LED台灯、路灯,几乎所有城市的夜景都是用各种颜色的LED灯来装点的。 把LED点亮太简单了,只要让其流过一定的电流就可以亮了,电流越大亮度越大,电流小则亮度小。那这些灯都是如何调光(控制亮度)的呢? 大家最容易想到的,也是在很多电路板上状态指示灯最常用的一种方式就是通过串联一个电阻,改变电阻的值就可以改变LED的亮度,这种调光方式被称为模拟调光。一般来讲只需要LED灯点亮就可以,至于亮度的大小,也就是串联电阻值的大小关系并不大。当然不同颜色的LED灯其前向导通电压也不同,即便达到同样的亮度,在同样的供电电压下串联的电阻值也可能不同,因此一般都不用纠结,装一个330还是510还是1k其实都可以,觉得太暗就把电阻值弄小点,觉得太亮就把电阻值弄大点。 通过串联不同值的电阻可以调节电流而实现对LED亮度的调节 模拟调光存在很大的缺点就是电阻上会消耗功率变成热量,LED对电流的响应是非常非线性的,LED灯的亮度调节范围也比较低。 因此在很多需要调光的场合都采用PWM的方式(又被称为“数字调光”),也就是在固定流经LED的电流大小的情况下,通过占空比可调节的PWM脉冲来反复控制LED的导通和关断 - 导通的时候LED按照设定好的电流值发出相应亮度的光,关断的时候LED不亮,如果PWM脉冲的重复周期高于我们人眼视觉暂留需要的频率,尤其是达到50Hz以上后,我们一般人就觉察不出LED的闪烁了,从而认为LED没有闪烁,改变PWM脉冲的占空比就能够改变LED的亮度,如下面的图。 PWM调光的电路 不同的占空比产生不同的亮度:50%中等亮度、10%很暗、90%很亮 改变PWM脉冲的占空比就可以改变LED的发光亮度 PWM调光的优点是简单、效率高、其亮度随PWM占空比变化可以做到非常高的线性度,更符合人们对于LED调光精度、效率以及效果的要求。PWM调光可以产生3000:1甚至更高的调光比(在100Hz的频率时),而不会有任何明显的精度损失,并且LED颜色没有变化。 那么用于调光的PWM的工作频率和分辨率应该如何设定呢?
通过RGB三色灯配色 我们知道颜色构成中有R、G、B三基色,其它任何颜色都可以通过这三种基色以不同的比例混合的到。在显示的时候也是通过调节空间上非常靠近的三种颜色的LED灯的亮度来达到“合成色”的目的,从距离这三个“单色像素”较远的地方就可以看到混合生成的新的颜色 三基色按照一定的比例混合可以得到各种不同的颜色 下图为靠近的三个不同颜色R、G、B LED灯。 通过调节每个颜色的LED的控制PWM的占空比从而以不同的亮度比例进行颜色混合,从而得到你需要的合成颜色。 三种单色LED等分别控制其亮度,混合后得到的颜色 小脚丫FPGA板上在FPGA芯片下方有两颗3色LED灯让工程师体验PWM调光的魅力 我们工程师经常使用MCU的PWM功能来产生相应的信号,要认真阅读该MCU的数据手册以及PWM相关的寄存器的设置,以产生你期望的PWM频率和分辨率。 有些MCU内部没有专门的PWM产生电路,可以通过指令控制GPIO管脚的交替变化实现PWM的功能,当然这会影响MCU执行其它的任务。 |
|