8阶光立方的制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8阶光立方的制作

摘要

光立方是一个电子工程方面DIY的绝好实例,不管国内国外都有非常多的爱好者。它同时要求制作者具有软硬件设计及手工制作等多方面的能力,目前youtube上最大的DIY光立方是32阶全彩光立光,引脚数多达131,072个,这对于个人来说绝对算是个大型的工程了。

要制作出一个漂亮的光立方,除了电路设计与程序设计,辅助工具设计也很重要,缺少它甚至是无法完成整个制作的。另一方面,很多验证性工作也属于辅助设计,理论往往与实际会有很大的出入,这时就需要一步步去验证原始设计。网络上大多参考资料都只是一个制作记录,并没有详细分析为什么要这么做,是否还有其它的实现方法等等。因此,在遇到不同的实际环境的时候,出了问题却往往找不到原因在哪里,这就造成很多的困惑。本文试着从设计原理的角度来分析如何做一个8阶单色光立方,以及记录在制作过程当中遇到的各种问题与解决办法。

控制芯片采用STC MCU,输出为串口转并口,驱动芯片选用东芝16位移位寄存器,3个级联达48位并口输出,512个LED使用16*32矩阵接法。

目录1 准备篇

1.1设计框架

1.2 主芯片选型

1.3 所需工具材料

2设计篇

2.1 电路设计

2.2 程序设计

2.3辅助工具设计

3 完善篇

3.1 迭代

3.2 功能扩展

1 准备篇

光立方,由若干个LED以立方体的形式搭建而成。最常见的为8*8*8(512个LED),8阶光立方,也叫cube8。当灯按照一定的规则依次变换点亮的时候,可以产生十分唯美的灯光效果图,现在大多随着动感的音乐节奏一起变化,声色交错,

让人赏心悦目。

1-1光立方(蓝光)——cube8效果图

1.1 设计框架

第一个需要思考的问题是:如何连接这512个灯?有个前提条件需要满足:每个灯都必须可以单独点亮。那么,任何两个灯都不可以串联。最直接的办法是并联这512个灯,共阳或者共阴,然后提供512个输出。但这样做至少有两个非常大的缺点:首先,一般情况下无论是MCU、ARM、FPGA都无法提供这么多输出位,即使是使用多个16位移位寄存器,那么也需要32个,这无论在成本还是在实际焊接都十分不划算;其次,就算512个输出位不是问题,因为是立方体形式,线路之间会存在互相遮挡,所以,必须要求连接线路最少,显然,直接并联是最傻的情况。

现在把问题转换成一个求解题:试求512个灯的最少连接线路,要求每个灯可以单独点亮?这实际是一个求最优解(极值)问题。回想一个几何问题,在确定面

积下,求最小周长?答案是:C(min)=4*S^(1/2)。这里的关键是对S开平方根,所以对512开根号约等于22.627,很明显,最佳组合应该是相互间距最近,而且都是2的n次方,所以,最优解是16*32矩阵接法,只需要48个输出。但矩阵接法也有个天然的劣势,无法同时输出多个状态,必须使用动态扫描输出,利用高频特性伪装成同时输出的样子,所以,这就对频率提出了要求。但同样地,优势除了线路最简外,因为是动态扫描,所以电流也可最小化。

如何提供48个输出,最直接的方法当然是找一个具有48个以上输出的MCU,实际上确实有,STC15W4K16S4就有LQFP64S、LQFP64L、QFN64三种,提供62个IO 口,价格在6元以下。这种方法是最简单的,但却不是最灵活的,也就是扩展性和变化性不强,假如把8阶升级到16阶就只能换方案了。如果不直接输出,也就是说不选择并行输出,那么就串行输出吧。由MCU输出串行信号,再由移位寄存器转换成48位并行输出,控制16*32矩阵电路实现512个LED完全控制。

1.2 主芯片选型

由于MCU输出串行信号,一般3位输出即可,这里选用宏晶STC15W401AS-35I-SOP20,市场价2元。不选用DIP的原因是嫌它太大了,不利于后期制作PCB,选用18个IO的原因是为了后期扩展使用,比如加入红外遥控,按键,光敏,麦克风等,再者串行输出不要与MCU下载线路共用,不方便在线调试及信号测试等,串行输出也要根据后期程序的难易程序决定是否让移位寄存器级联,如果不级联那么

就要输出多个串行信号,所以初期不要选太少IO口的MCU。

1-2STC15W401AS-35I-SOP20

移位寄存器大多数选择74HC595,这里选用东芝TB62747AFNAG,是一个16位移位寄存器,串行数据输入频率可达25MHz,每位输出最高电流可达45mA,市场价1.65元。输出48位,须3个同时工作。

1-3TB62747AFNAG

1.3 所需工具材料

材料:万能板(数量与大小可根据实际需要与个人喜好选择购买),杜邦线若干,排针若干,转接板(转接SOP),焊接线若干,电容电阻若干,5mm方形LED 1000个左右。工具:电烙铁,热风枪,RS232(USB转TTL,MCU程序下载工具),其它工具(剪刀,镊子等),万能表,电压源,示波器,3D打印机。软件:Keil C (编写及编译程序),STC-ISP(程序下载软件)。

这里有些工具并不是必须的,而且往往使用到的工具也远不止这些,有了这些工具的帮助将会更容易模拟问题,发现问题,并最终解决问题。在进行前期设计的时候更多的是用各种软件工具来进行模拟,论证。如果没有很多工具,那就要学会用其它已有的工具来代替。

2设计篇

2.1 电路设计

在设计原理图的时候,要先确保芯片的工作确实如你所想。在本次制作过程

中发现TB62747移位寄存器并不如所想那样工作,于是制作测试电路来检测真正的工作方式,发现两点问题,在芯片的数据手册里没有说明。第一,反向输出,OUT15为第一输出位,OUT0为第十六输出位;第二,移位标志位不会归零,每次刷新都必须更新所有位,即使只需要刷新一位,仍然需要把所有的位全部更新一次。

使用万能表测出LED点亮电压为3V,电流为10mA-15mA。再根据TB62747的数据手册,设置并验证REXT接1K的电阻到GND可以使电流在10mA左右,另外,此芯片输出必须接上拉电阻,芯片输出为5V,因此接上拉电阻0.2k。这里采用三片级联,当然也可以不级联,或者只级联两片,可以根据需要做相应调整。因为是采用动态扫描输出方式,所以每次都只是点亮一个灯,也就是说每次只有一个电流流过LED,其余都流经芯片,所以这里把正极平均分布在级联的三片芯片上。为了保证在快速刷新的时候芯片电流的稳定,在芯片的电源处并联20uF的电解电容。电路原理图设计如图2-1。

2-1电路原理图

相关文档
最新文档