思享国logo
  • 点赞

    2

  • 宝推

    0

  • 10

  • 回复

  • 下载附件

    2

返回顶部

点赞数

2

回复数

4

被浏览

315

RGB LED制作极光雾状LED,看极光,不用去北极(附PCB,源码)

2018-01-12 15:29更新
  • 论坛热议

视频中这个闪烁的美丽光轮就是“极光”——二极管艺术品。极光的电路中有162个RGB发光二极管,每圈的颜色变换都是由一个微型控制器用一种改进过的脉宽调制方式控制。虽然采用的控制器本身只有一个脉宽调制模块,但是极光能同事展示27种独立的亮度。


概要

RGB 发光二极管(也被叫做全彩发光二极管) , 可以发出各种颜色的光,涵盖的色彩范围一点儿也不比彩虹少。 这个效果听起来很复杂, 但原理其实很简单: 把红绿蓝三原色的三个小发光二极管装在一起,通过改变三原色的亮度比例,混合出各种颜色。大部分亮度控制电路都用到一种叫做脉宽调制的技术来控制亮度。 目前许多微型控制器都内嵌了一个或更多脉宽调制模块,但通常少于 5个。当需要控制 9个不同亮度的发光二极管时,我就得用多个控制器或者外置电路,如果这 9个都是全彩发光二极管,则需要多达 27个脉宽调制器。


于是我在试验过程中以不同的配置, 做了各种类型的尝试, 试图减少脉宽调制控制器的使用量。除此之外,我还试图让亮度在变化时更加平滑。现在大部分 PIC 微型控制器提供的都是8~10 位的脉宽调制分辨率,在这样的分辨率下,二极管灯光在比较暗时的光亮变化不是渐变的,会有阶梯感。 因为人眼对光强属于非线性响应, 所以需要对亮度变化曲线做 gamma修正来给人以亮度均匀变化的视觉体验。 总之, 根据我的计算, 要实现平滑的视觉效果需要至少 12位的脉宽调制分辨率。


如果只是按此原理做个简单的电路,使每个发光二极管都由 12 位以上的独立脉宽调制控制器控制,我就需要用到某种特制的发光二极管控制 IC。


不过这样的特制 IC 的解决方案既不微型也不便宜,对我没有吸引力,最终我决定把脉冲调制和多工驱动结合起来:把每个脉宽调制的循环拆成多个脉冲,再分别驱动三原色二极管,


于是三原色二极管就一个脉冲调制循环里被分别点亮数次(大概有点像脉冲宽度调制和脉冲增量调制的混合吧) ,而整个全彩二极管的平均亮度输出与这段时间内的脉冲次数成正比。


这样做不仅能通过以不同频率点亮三原色来减少发光二极管的可见闪烁,还能通过结合多个脉宽调制的脉冲增加脉冲调制分辨率。


不过减少可见闪烁后的发光二极管闪烁频率还是很高的,让极光看上去的刷新率比123Hz高的多。

 

看一下时序表,我取7 个发光二极管的 R/G/B 总线信号来说明我的概念。正如你所见,R/G/B 通道间隔着轮流点亮,这些脉冲控制着发光二极管确切的点亮时段。当 R/G/B 总线中任意一个处在高电平时LED 就会点亮。总的点亮时段和颜色则取决于 R/G/B 总线的高电平组合


比如说 ,图中:

LED1 只点亮在 1级(最低的亮度)红

LED2 会点亮到 2级绿

LED3 会亮到 3级蓝

LED4 会点亮到 3级黄(红 +绿)

LED5 会点亮到 3级紫 (红+蓝)

LED6 会点亮到 3级青色(绿 +蓝)

LED7 会点亮到 255 级(最高的亮度 )白 


电路原理:

极光有18个全彩二极管在9个回路里。总共有162个发光二极管。每圈都是分隔开来控制的。所有有9个LED电路需要控制。

 

我采用PIC24F08KA101作为控制器,这个芯片是16位的,已经足够控制电路,所以并不需要占地方的外部设备来达到运算峰值32Mhz


电路本身很简单,微型控制器连着一个摇杆式的开关(其中有5个触点开关),用3个MOSFET(场效应管)和12个BJT(双极性管)控制着通过LED的电流。3.3V的线性稳压器给PIC供电,LED回路则用5V的电源驱动。


这个电路其实就像9*3的矩阵变换电路,但是3列被全彩LED的3原色替代。所以三路三原色是多工驱动的,分别点亮而不是一起亮。通常我不喜欢做多工驱动的东西,但有时必须对简单性和节省空间两方面妥协自己的喜好嘛。


因为这个微型控制器只有一个脉冲宽度调制模块,我需要把这个脉宽信号扩展到三原色发光二极管。我用一个“与门”解决这个问题。R-BUS只在R-DRV为低电平且PWM为高电平时为高电平,G-BUS只在G-DRV为低电平且PWM为高电平时为高电平等等。这个简单环节的电路工作很正常,节省了节省了成本更节省了PCB板上宝贵的空间。我的高边开关用到了MOSFET,因为我找到的BJT无法承受162个发光二极管并联的电流(高达3A!)。MOSFET(DMP3098L)承受电流的能力值得推荐。


低边开关电路就很简单了,用BJT的共射极组态。


发现电路中有许多1KOhm的电阻接在输出端上了么?也许你会不明白它们的作用。这些电阻能帮助晶体管在没有点亮LED时也能快速关断。因为晶体管工作时间是纳秒级的,所以启动和关断的时间很重要。总的来说,这些电阻会让脉宽调制运行的更快,能减少肉眼可见的闪烁。


PCB

图片1


元件

图片2


162x

150Ohm (0603)

9x

220 Ohm (0603)

13x

1k Ohm (0603)

3x

470 Ohm (0603)

1x

10k Ohm (0603)

2x

10uF (0603)

1x

1uF (0603)

1x

AP7333-33

3x

DMP3098L

12x

MMBT2222A

1x

PIC24F08KA101

1x

4向摇杆开关(Panasonic EVQQ7)

162x

5mm全彩LED

1x

5V直流电源或4x镍氢电池和电池盒


图片3

希望你和我一样喜欢这种洗脑感强烈的色彩变幻,电路中还设计了五个可以调节的变量:上下拨动摇杆可以改变色彩变幻模式,左右拨动可以改变变幻速度,按下摇杆可以暂停/继续色彩变幻,长按两秒就可以把它关掉了。


您尚未登录, 登入  或  注册  后可查看全部