极光有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时也能快速关断。因为晶体管工作时间是纳秒级的,所以启动和关断的时间很重要。总的来说,这些电阻会让脉宽调制运行的更快,能减少肉眼可见的闪烁。
我在DorkbotPDX 订做了这个PCB板,他们有一个我很喜欢的交互式PCB设计程序(有点像BatchPCB)。做好的PCB板很好看,美国制造,阻焊漆是暗紫色的。
元件列表,或者后面的BOM文件中也有元件列表: 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镍氢电池和电池盒 部分元件来源: LED是直接从中国快递过来的,花了几天时间,不过元件质量很好,别的元件在Digi-Key有卖(北京的朋友应该都知道,这些中发都有卖)。你可以用其他元件替代晶体管:比如BJT可以用多种其他元件替代,但是找到替代MOSFET的元件应该不容易。 无论如何,如果你有更经济的元件搭配,请告诉我。 BOM文件下载 (1kb)
● 放大镜 ● 焊膏(装在注射器里备用) ● 镊子 ● 电烤箱 ● 红外/激光温度计 ● 电烙铁 ● 线剪 ○ 焊锡(去买最好的药芯焊丝吧) ○ PIC编程器(支持PIC24F08KA,并且可以通过标准6脚ICSP连接器进行ICP烧录)和电脑
由于元件数量特别多、分布特别密集、布局特别罕见,组装过程需要特别精湛的焊接技巧和一颗特别淡定的心。 由于多数元件都是贴片的,我用的是“涂焊膏、放元件、烤!”的贴片焊接技巧,如果你以前做过贴片电路,应该明白我在说什么了。当然,焊接贴片电路有许多办法,你可以选择你擅长的。我这里只演示一下我的方法。 准备工作当然是数清并准备好所有的贴片元件。我建议预先把贴片元件按位置整理好,这样你把焊膏涂在PCB上后就可以马上找到元件并且安上去。
让人神经麻木的布置焊膏完成了后,你就可以开始把贴片元件都摆放到适当的位置去了,当然这也不是什么轻松活,同样你看了视频就知道了…… 由于元件很多,我们需要个计划,可以按照我准备的元件位置指南进行。其实为了美观,我没有在PCB上标明元件位置,所以你也只能按我的指南来做。按照先中央再四周的顺序进行摆放。同时你还要小心身上的静电击穿元件,如果有防静电桌垫最好了,没有的话像我一样把铝箔铺在PCB板下面进行工作吧。特别要注意那个四向摇杆开关的方向,这个开关方向如果错了你就没法给PIC编程,然后就得用热风枪把它吹掉重焊了。还有也别把PIC的方向弄错了。
接下来我就要把PCB放进电烤箱了,正是厨房的那种,而且很老很破旧,事前我甚至祈祷希望它能足够的热。这时有一个红外/激光温度计几乎是必须的,除非你已经熟练到能用心去感受烤箱温度。 放在一个托盘上的PCB 小心的把PCB板放在烤箱里,不要碰乱了贴片元件的位置,我是放在烤箱的中间,因为我觉得那里温度比较稳定。打开开关,把烤箱温度开到最高,然后监测PCB附近的温度,等到温度逼近160摄氏度时就调低烤箱温度,反复调节烤箱温度使得这个温度保持1到2分钟,然后继续调高温度到200摄氏度以上。这时你就会看到焊膏都融化了,也许还会冒一点烟。 焊膏太多的地方过会就得用吸锡带整理啦。 等到所有的焊膏都融化就可以把烤箱关掉了。有些人把PCB放在烤箱里冷却,但是我沉不住气戴着隔热手套就把PCB拿出来了,无论如何不要冷却的过快(比如放在一个冷的表面上)就可以了。 在PCB冷却到能用手摸时,就该进行检查工作了,戴上放大镜观察所有的细节,元件、焊点什么的。除非你特别棒,(或者我还不够棒)不然肯定会发现一些要修复的地方。比如SSOP(PIC24F)的引脚很接近,要仔细检查有没有桥接的情况,我总是要用吸锡带来修复这个问题。
在继续进行之前,先用万用表测试一下,确保电源和ICP相关的部分没有短路的元件。 接下来打开电脑,启动Microchip IDE,用提供的HEX文件给PCB板上的PIC微型控制器编程。 这时你需要一个5V的电源供应,这里我用一个两脚的插针连接电源(注意电源的极性),以及一个5脚的插针连接编程器。我的编程器是ICD2,你的编程器如果也是这种老式的,记得把高电压编程模式的电压设置低于9V。 一个8.2V的稳压二极管连接在MCLR和GND之间也正常完成了编程。 没什么意外的话,你就能看到IDE报编程成功了,如果有问题就还得回头逐步慢慢检查。
测试LED 鉴于任何零件都有次品率,并且焊上PCB后再发现这点的感觉真是糟透了,我在焊接前会把全部162个LED都检查一遍。 1.4MHz下工作的PIC16F627 每个全彩LED需要测试的其实是三个发光二极管,而市面上没有卖这样的测试器,所以我自己做了一个(制作过程就改天另写了,有兴趣的同学请继续关注)。很简单,用到了一个8位的微型控制器(PIC16F627),5分钟就能装好。这个测试器能测试7种不同的RGB混合颜色,所以你能轻易发现有缺陷(我自己确实检出了几个不亮或者光亮暗淡的)的全彩二极管。你每次可以同时测试3个LED,它们相互之间的对比也能让你更容易发现异常。 把次品从PCB上取下来很麻烦的,所以这样的检测完全不是浪费时间,磨刀不误砍柴工嘛。
焊接LED 这个小饭盒放PCB正合适。 临时电源 擦擦汗鼓励自己一下吧,因为马上就要大功告成了。再保险起见最后做个测试,把9个发光二极管插进孔里(注意极性啊),按两条竖线径向安好,接通电源。看下视频你会明白我在说什么,如果你看到颜色变化的话,你就真的马上要大功告成了。 如果没问题那么先冷静一下,把9个发光二极管再拿出来,因为你得如图中那样把过长的引脚剪掉再把它们装上PCB。 从中间的一圈孔开始装,装好一圈翻转过来焊接完毕后打开电源测试一下,如果全部发光二极管都亮的话再装下一圈。直到所有LED都装好为止。
Molex插针,DC 5V, 4A PCB板上有一个2脚的插针用来接电源。供电的就是普通的5V电源,至少要有1A的输出电流。可以像我这样直接把直流输出口换成插口,好插在针脚上,也可以直接用焊锡把电源和PCB上的针脚焊在一起。还可以用4节镍氢电池来为极光供电。4节镍氢电池串联的电压刚好5V左右,适用各种要求5V电压的电路,给极光用的话也可以持续供电几个小时。 然后就是见证奇迹的时刻。
电路中还设计了五个可以调节的变量:上下拨动摇杆可以改变色彩变幻模式,左右拨动可以改变变幻速度,按下摇杆可以暂停/继续色彩变幻,长按两秒就可以把它关掉了。 鉴于编程空间还非常富裕,整个操作系统的功能完全可以继续扩展。编程器5个脚中的两个都可用来输入模拟信号,所以也许还可以增加些基于模拟信号输入的互动环节,比如声控什么的,欢迎黑客/创客们继续帮我完善设计啊。