玩了那么久光立方其实也有写过日志,但一直存在草稿里

材料清单:

首先要diy光立方需要买齐什么电子元件?
光立方材料清单:
主控芯片 STC90C516RD  (这个家里有就没买)
雾状 白发蓝发光二极管 尺寸2*5*7  *550个
74HC573锁存器  *8个 (贴片)
ULN2803 达林顿管驱动器 *1个  (贴片)
18*30cm洞洞板 *1
晶振 *1个 12MHZ
陶瓷电容 22PF  *2个
200欧电容  *64个
以及跳线、按键开关...
共计70元左右 

在快递寄来前,需要先画仿真电路图

 

谈光立方硬件原理:
512个独立LED如果要单片机单独控制是不可能的,因为51单片机只有32个I/O口(input/output)。
所以就需要用到锁存器,每个锁存器能锁存一个字节的”电平信号“,可以控制8个LED,8个锁存器可以控制64个LED。
可以把光立方分成8层,每层共阴,八个层的阴极接ULN2803 达林顿管驱动器的8个输出端口。而ULN2803 达林顿管驱动器的输8个入端接P1端口,用来控制光立方的8个层哪个层可以有电流通。
如 P0 = 0X01; 二进制值 = 00000001,也就是说,达林顿管驱动器输出端只有第一个端口输出低电平,其他端口都是高电平。这样一来通过P0端口值的变换就可以用8个锁存器循环控制第0~7层。

 

/*没学过画画,画的是有点丑*/

(补充信息)固定画面的显示,所需要硬件执行的过程。

1.将第一层64个点的数据传入8个74hc573中,控制uln2803层控制芯片打开第一层开关,使第一层点亮,这个时候,其他层是灭的。

2.等待时间t。
3.熄灭第一层,开始向74hc573中传输第二层的数据,锁存,开启第二层总控制开关,点亮第二层。
4.等待时间t。
.......
熄灭第一层,将第八层的的数据传进所有74hc573中,锁存,开启第八层总开关,点亮第八层。
再回到第一步,循环下去....
这样,便实现了一个周期画面的显示,由于人眼的视觉暂留的特性,只要刷新的够快,我们看到的就是光立方整体都在亮。便实现了我们想要的效果。为了画面的稳定,上面间隔点亮t要保持一致,否则会出现亮度不均的情况。
在实际使用上述电路的时候,最好给74hc573输出的64个引脚分别加一个限流电阻,这样能起到很好的二极管保护作用和整体功耗的限制以及亮度的调节。

对于光立方,首先要清楚其工作原理,整个点亮的过程,单片机需要一直工作的,单片机每一次发送的数据只能点亮一层的特性得知,在整个画面显示图案的时候,即使是静止的图案,那么单片机也是在不断循环工作的。如果单片机停止了工作,那么光立方得图案即会消失。
又由于这个特性,如果点亮某一层后停留的时间不一样,就会造成每一层的亮度不均匀,所以为了避免这些,需要一个准确的时间基准来依次点亮光立方的每一层,方法有很多,但单片机不能总处理这么一个任务,他可能要处理的还有,动画的实时运算,其他数据的采集和处理等,所以考虑到这些任务都是需要实时运行的,编程难度似乎加大了不少,这时需要引入单片机中断这一基础功能,难题便会迎刃而解。
首先定义一个缓存数组,用于储存所有的光立方每一点的数据,暂且理解为显存。我通常用display[8][8]定义为数组。
下面就要定期把这个数组定期发送至驱动板中,时间如何去定义。
我查阅资料后发现,当现实器播放大于15帧的动画时,才会在我们的眼中形成流畅的效果。那么光立方刷新频率要大于15hz/s(越大越好,但是越大单片机负载也越大),这里也就是说,每1/15秒就要进行一次全部图的刷新,又由于在相同时间,只有一层能够点亮,那么每一层停留的时间就是1/15/8s根据这些规则,我需要定义定时器让定时器有相应的数值。把这段专门用于刷新光立方显示的程序放于中断服务程序中。这样,我们程序的基础框架就有了。由于是定时器中断自动来刷新驱动板数据,这样我们看到的图像很稳定,亮度也均匀。而且我们再写其他的图案动画程序时候,不用再去考虑去更新驱动板数据,一切都会由中断自动完成。而我们如果要更改图案,我们只需要对数组所储存的数据进行更改即可,这也使我们的动画程序很驱动程序产生隔离,这样做的好处是即使更换了驱动板,那么也只需要对驱动函数(中断里面的程序)做相应的改动即可,不必再对其他程序改动。这也避免了“动一发而牵全身”的尴尬局面。
快递寄得慢也就算了,居然还少寄了!先倒腾起来
把母孔焊到洞洞板上
用硬纸板做焊接模具,掰弯发光二极管,准备焊接。
第一面焊好,烫手啊!
接着焊好板子及板子底下的跳线
 
接着做好给光立方供电的电源
最后光立方就做出来了
关于我对光立方驱动程序的理解
这些程序在帖子附件中都有,想研究光立方程序的可以下载看看
http://www.eeskill.com/file/id/41615
小学生班门弄斧了,希望大家谅解!
最后说一下洞洞板制作光立方容易出现的一些问题
1.锁存器的两个脚短路的问题。
2.做好不要用母孔做光立方,容易造成灯脚与板子接触不良和造成光立方的不整齐
3就是要注意发光二极管的漏光问题,有的LED被反向击穿了,所以电流就会从负极流向正极。导致该亮的灯不亮,不该亮的灯亮。
4.国产锁存器里面坏的多,我买10个国产锁存器里面有一个是坏的,锁存器第4个输入口居然接地了,导致我做光立方遇到了很大的问题。
 
 
 
永不止步步 发表于10-29 10:42 浏览65535次
分享到:

已有3条评论

  • silencn
    silencn 11-01 19:10

    锁存器连接LDE,是一个锁存器连接一列LED,还是一个锁存器连接一个小单元?

  • 永不止步步
    永不止步步 10-29 10:43

    光立方材料清单: 主控芯片 STC90C516RD (这个家里有就没买) 雾状 白发蓝发光二极管 尺寸2*5*7 *550个 74HC573锁存器 *8个 (贴片) ULN2803 达林顿管驱动器 *1个 (贴片) 18*30cm洞洞板 *1 晶振 *1个 12MHZ 陶瓷电容 22PF *2个 200欧电阻 *64个 以及跳线、按键开关...

  • 永不止步步
    永不止步步 10-29 10:43

    如果闲stc90c516单片机运行速度慢的话,可以用stc12单片机做光立方,要比stc90运行速度快很多遍。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号