标题: DIY LEDCUBE 自制立方灯 [打印本页]
作者: liuj 时间: 2013-10-16 21:32
标题: DIY LEDCUBE 自制立方灯
1,准备材料
●512*LEDs(多买几个,以防止有的是坏的,最好是雾面的,如果买来的不是雾面LED,可以住LED上轻微喷些白漆以达到效果)
●细铁丝(用来焊接LED,如果买的LED引脚够长可以不用)
●64*电阻(510R左右的) 8*电阻(220R,三极管基极) 8*电阻(2.2K,三极管上拉)
●8*74HC574(锁存器,多路复用,也可采用595移位寄存器,本方案用574,595不再讨论)
●1*74ACT138(译码器,给574产生时钟信号)
●8*s8050三极管(用作开关管)
●电解电容(主要为电源电路部份用)
●USB母头
●开关
●DC接头
●一块MCU最小系统板(本方案采用飞思卡尔的XS128,有点奢侈,其实用51单片机就可以,比如12C5A就ok)
●两块20cm*20cm的铺铜板(本方案板子全部自己用Altium Designed画出来,然后用感光绿油曝光和腐蚀,也可用洞洞板自己搭,不过比较麻烦,工产打样同样也是忒贵,还是腐蚀板最为经济)
(如果采用腐蚀板,还需要准备以下东西)
●紫外灯(日光灯也可,不过爆光时间需要自己实验得出)
●显影剂
●感光绿油
●环保型腐蚀剂(或者三氯化铁)
●脱膜剂
2,什么是立方灯呢?
立方灯就像是一个LED屏幕,但是它特殊在有第三维,使得它能够有3D效果。可以把它认为是透明且低分率的显示器。正常显示器是尽最大程度堆栈象素来使得显示出来的东西更加真实漂亮,但是在立方灯必须能看得到里面,同时在象素间需要更多空间。
立方灯不需要遵循什么标准,它可做成7*8*9,甚至更加古怪的形状。
3,立方灯如何工作 这个立方体有512个LED。很明显,每个LED有一个专用的IO端口是非常不切实际的。你需要一个有512IO端口的微控制器,通过该多维数据集运行512线。LED立方体依赖一个光学现象叫做持续幻象(POV)。如果你led闪烁的非常快, 在led关掉前,图像将留在你的视网膜一小会儿。通过闪烁每一层多维数据集的一个接一个的反应非常快,它给人一种3 d图像的感觉,事实上你看到是一系列的二维图像堆积成的。有了这个这些,我们只需要64(为阳极)+ 8(每一层)IO端口控制LED多维数据集。
4
,剖析立方灯 下面我们看一下LEDCUBE
的立体结构。 一个LED
有两个引脚,一个阳极和一个阴极,为了点亮LED
,我们要使得阳极为高电平,而阴极为低电平。 LED
立方灯由64
列和8
层组成,每一列也就是连线垂直地面的8
个LED
,这8
个LED
的阳极是连接在一起的;每一层是由平行地面的64
个LED
组成的,这64
个LED
的阴极是连在一起的。 在控制的时候,每次让其中一个面的选中(也就是让其中一个面的阴极为低电平,其它面仍然保持高电平),然后从锁存器读出这一层的数据输出到64
列,这样就完成了一次层扫描,按照这样的方式依次扫描其它7
层就可以完成一次LED
扫描。LED
立方的结构。
5
,驱动电路 我们的LED
立方灯为8*8*8
的,这样需要有至少64+8
个IO
口进行控制,如果用超过64
个引脚的单片来控制,这会大大增加我们的成本,一般的51
单片机又没这么多的引脚,为了解决这个问题,我们采用74HC574
锁存器多路利用。 74HC574:
●
8个输入●8个输出●1个时钟信号●1个输出使端 锁存器最终要完成的工作就像一个简单的缓存,锁存器能保持8位数据,当输出使能有效时,数据将送到输出引脚。当时钟发生上升沿的时候,锁存器数据被刷新一次。为了能够刷新到8个锁存器,我们将8个锁存器的8个个输入分别接在一起,构成8bit数据总线,然后能过8个使能端的控制分别刷新8个锁存器。 下面的代码实现刷新锁存器的功能。
// PORT A = data bus
// PORT B = address bus (74HC138)
// char buffer[8] holds 64 bits of data for the latch array
PORTB = 0x00; // This pulls CP on latch 1 low.
for (i=0; i <8; i++)
{PORTA= buffer;
PORTB = i+1;}
6,主板电路
我们采用的主板上面主要是由主控核心板组成,还有一个三管开关电路组成,没有什么多的东西,不再细说。下图为主板控制电路。
8,制作过程图集
********PCB制作图集********
***************************
********LED搭建图集********
**************************
********整体效果********
***********************
电路图资料.rar
(47.1 KB, 下载次数: 232)
DIY电路板.pdf
(1.9 MB, 下载次数: 271)
代码.rar
(107.75 KB, 下载次数: 178)
作者: liuj 时间: 2013-10-16 21:33
下面再补充一点关于程序的问题,其实整个程序的结构框架很简单,无非就是在中断里不断的扫描,然后在main()函数里不断向锁存器buffer里面写数据。在调中断的时候需要注意的一个问题是,要不断调试多长时间进行一次中断,当调至扫描的时候灯最亮为佳。下图附件为程序流程图。
/*****************************************************************************/
程序中各文件说明:
main.c //这个地球人都知道,就不多说了
main.h //对接口及状态量进行宏定义,方便使用
cube.h //同样进行宏定义
Draw.c //效果函数的底层,定义基本函数为实现各种动态效果做铺垫
//函数举例:
//setvoxel(int x, int y, int z)为点亮坐标(x,y,z)处的led
//line(int x1, int y1, int z1, int x2, int y2, int z2)为点亮(x1,y1,z1)和(x2,y2,z2)之间的led
//shift (char axis, int direction);将led所有象素沿着axis轴的direction方向平移
font.c //字库,显示字母用得到
effect.c //调用Draw.c中的基本函数实现动态效果
Launch_effect.h //其实里面只是一个switch函数,就是切换效果的作用,这样在main里就不用大段的调用效果函数
/*****************************************************************************/
从上面分析知道,要移值这个程序也是相当简单的,只要把你采用的单片机的中断调好,很实现基本的扫描,那么基本成功了,最后要做的就是把效果函数移植进去。
作者: zhouyubo163 时间: 2014-4-7 19:22
不错的,51黑有你更精彩。
作者: 刘仁福 时间: 2014-4-10 13:11
不错啊
作者: rich3524 时间: 2014-5-14 17:43
好,谢谢分享
作者: zhce 时间: 2014-5-17 19:44
第二步 准备工具 基本的电子制作工具: 1、电烙铁一个。 2、焊锡丝若干。 3、松香少许,助焊剂也可以。 4、镊子(有更好,没有也行)。
作者: xiaozhi_cc 时间: 2014-7-4 22:54
真心好东西
作者: xiaozhi_cc 时间: 2014-7-4 22:55
求M币下载
作者: xiaozhi_cc 时间: 2014-7-4 22:56
给力。。。。。。
作者: zwpkzw 时间: 2014-7-7 13:36
谢谢楼主分享
作者: 露露 时间: 2014-10-8 16:58
谢谢分享。。。
作者: xets2000 时间: 2014-10-9 09:09
高手啊!!!!!!!!!!!!!!!!!!
作者: 威斯布鲁克 时间: 2014-10-10 23:41
呼呼,终于找到完美的资料了。谢了撒
作者: 热爱DIY 时间: 2014-10-13 19:20
学习了,,,,,,,
作者: aidanpianji 时间: 2014-10-13 19:27
高手高手高高手
作者: hanyubo 时间: 2014-11-16 13:51
奥会分解为
作者: hanyubo 时间: 2014-11-16 13:51
谢谢楼主谢谢
作者: hanyubo 时间: 2014-11-16 13:53
真的很好用唉
作者: hanyubo 时间: 2014-11-16 13:53
真的大开眼界
作者: 1426134543 时间: 2014-11-29 03:24
看了挺久才看懂,不过能看懂就好,谢谢lz
作者: 飞舞2014 时间: 2014-11-29 23:10
美 很美 非常美
作者: jnwyj 时间: 2014-11-30 00:59
没有M币下不了啊
作者: mycookie 时间: 2014-12-9 10:32
真心好东西
作者: 淘淘 时间: 2014-12-9 23:03
漂亮。。。。。
作者: pps111 时间: 2014-12-19 22:05
还是值得收藏
作者: pps111 时间: 2014-12-19 22:05
谢谢了让
作者: pps111 时间: 2014-12-19 22:06
太好了
作者: pps111 时间: 2014-12-19 22:07
学习中。不简单
作者: LN555 时间: 2014-12-19 23:13
求PCB工程
作者: 51hei电控2112312 时间: 2014-12-20 02:51
很好,正需要
作者: 师太来取精 时间: 2015-1-7 22:28
谢谢分享
作者: sglf0201 时间: 2015-1-22 13:25
有打算做一个,好资料,谢谢
作者: Gameboy 时间: 2015-1-25 22:14
谢谢分享
作者: rich3524 时间: 2015-2-5 13:59
谢谢分享
作者: l754768458 时间: 2015-4-24 20:58
真不错谢谢谢谢
作者: 腾飞的龙 时间: 2015-5-11 08:00
牛气,真正的DIY值得分享!赞
作者: ludaijin 时间: 2015-9-7 13:40
有打算做一个,好资料,谢谢
作者: 日明月 时间: 2015-9-28 18:18
楼主这是8*8*8的吗
作者: 中国移动我不 时间: 2015-10-12 13:57
锡怎么捍在铁丝上的?
作者: Alng_夜鹰 时间: 2015-10-18 19:42
感觉楼主好可爱!!!
作者: 墨迹ddc 时间: 2016-3-2 20:56
资料很好,感谢楼主
作者: chn_zzh 时间: 2016-6-17 11:09
可惜没有黑币,唉
作者: 594sqq 时间: 2016-7-25 15:40
请问 程序用keil编译烧录的吗?
作者: 电发友 时间: 2016-8-19 14:18
没有程序也弄不了啊
作者: 电发友 时间: 2016-8-19 14:19
没有程序也弄不了啊
作者: ilylyp 时间: 2016-9-24 22:42
正是我想要的 谢谢
作者: hzhlllll 时间: 2016-10-13 16:24
好棒啊,大手
作者: y1145343666 时间: 2016-10-13 21:19
好牛啊,我也在学习,不过是在学习走路。。。。
作者: 小学生打联盟 时间: 2016-11-2 14:30
楼主能不能直接吧所有程序打包发给我,hex文件,我是一个大一新生,想做一个,程序还写不出来
作者: 1027711848 时间: 2016-12-2 07:42
看看做的不来
作者: 无时崩溃 时间: 2017-4-23 23:08
感谢楼主分享
作者: wpsczw@126.com 时间: 2017-5-19 10:52
好帅!想试试,下个资料看看
作者: wpsczw@126.com 时间: 2017-5-19 10:54
正是我想要的 谢谢
作者: blueice1998 时间: 2017-11-8 19:20
很棒,参考一下打算也做一个
作者: yatou520 时间: 2017-11-10 09:13
谢谢楼主分享的好东西
作者: hujinchen87 时间: 2017-11-29 16:05
感觉好好啊
作者: vhoux 时间: 2018-5-2 22:33
感谢分享。
作者: siliekakaxi 时间: 2018-6-7 13:37
楼主好强大啊。问一下这些LED灯如何接电阻呢?
作者: 春风得意 时间: 2019-9-5 14:06
学到了学到了
作者: 梦里蓝星 时间: 2021-4-17 09:23
请问代码编译为什么会有这么多错误,我该怎么办
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |