光立方论文.docx
《光立方论文.docx》由会员分享,可在线阅读,更多相关《光立方论文.docx(25页珍藏版)》请在冰豆网上搜索。
光立方论文
1概述
1.1光立方原理
光立方也就是LED的立体阵列,一般的LED是平面的,比如一个字,而光立方则是在多个等间距的平面再组合成一个立体。
这样就可以显示真3D图形。
8*8*8光立方我们把它拆成8个面,如下图,每个面64个灯,或说成64束。
我们要控制这64个灯使其自由变换,然后控制每个层依次点亮即可。
图1
学过点阵的都知道,如果要控制8*8点阵,需要16个引脚,那么8*8*8点阵我们再用8个引脚充当8*8点阵的总开关即可,我们只要把64个LED灯的阴极连接在一起就可以了。
图2
1.23DLED光立体的优越性以及主要应用
1.3DLED以其功耗低,寿命长,亮度高,视角大,可视距离远等优点而具有极为广阔的发展前景。
随着人们生活水平的提高,3DLED逐渐应用于各行各业。
人们对其的要求也越来越高,已经不再满足于二维平面,进而转向三维平面。
3DLED的出现是一个很好的契机。
2.3DLED光立体极具观赏性,人们可以根据自己的要求,设计不同的图案,
展现不同的立体效果。
可以说它是变幻无穷的。
因其极大地观赏性,使人们在接受信息,数据的同时更加印象深刻,使信息的传输更有效率。
3.随着3D技术的逐步发展,3DLED被广泛应用于现实生活中,比如LED显示屏,LED图像,LED立体摄影。
这些技术在我们的生活中随处可见,电影院,会议场合,舞台设计,以及各种娱乐场所。
2设计课题硬件系统的设计
2.1LED管脚搭接方法:
为了保持整体的通透性,立体感,3dLED光立方没有设计额外的支架,所有的搭接直接用LED的管脚。
1.水平折弯:
基本徒手可以完成,将512个LED灯的阴极都弯曲成90度,为了焊接的统一性,折弯时尽量保持角度的统一,还要注意区分阴极与阳极,由于我们做的是共阴,所以将阴极折弯。
如图3
图3LED灯弯曲成90度
2.垂直折弯:
为了让阴极摆出发光体一部分,使其与上下的LED搭接,可利用尖嘴钳对LED进行垂直折弯。
3.由点到线:
自备一块木板,在上面打8*8的64个孔,每个孔的间距大约为2cm,将折好的LED插入一排后,其阴极正好搭接在一起,进行焊接,图4,实现LED共阴。
因为LED很脆弱,很容易因为焊接时温度过高而烧坏LED,所以每次焊接完后都要去检查每个灯是否会亮,这是很重要的一步。
图4
4.由线到面:
将焊接好的一条一条的LED平躺在平面上,将露出的LED的阴极折成直角,使其可以与前后同一层LED的阴极进行焊接,实现8*8平面的层共阴。
如图5,当你插好64个灯珠后,还要在做些准备工作,只要弯折的长度适合,管脚的末端会多出几毫米搭接到临近的弯折点上,,给所有的焊点先上锡,时间不要过久,免得烧坏了灯珠。
管脚上锡搞好后,再焊接时只需一手用镊子夹稳管脚,在用烙铁烫一下就好了,镊子夹的时候就先矫正了灯珠位置,确定无误后,再那烙铁补上这最后一下,第一个平面焊接好后就是这个样子:
图5
5.又面到体:
将焊接好的一个一个LED面叠起来,进行焊接,如图6,实现8*8*8光立方。
一个平面搞定后,不要觉得这样就完成了,把灯取下来之前,先用万用表检查,电子表有专门检查二极管的档,比机械的要方便些。
确保你焊接好的灯珠都是会亮的,焊接的时候,难免有的灯珠被烫坏或者有正负短接的地方;把灯珠在模板上取下的时候,要比较温柔,这个想必大家都会,取下之后呢,在仔细检查正面和背面有没有焊锡不够的地方(因为在模板上你只焊接到了一面,另一面肯定有焊锡不够、不均匀之处),小心的补上焊锡,这样以后就不会开焊了!
要不然组装后,你再想补修开焊点,那想都不要想,所以,现在不要怕麻烦,有耐心,慢慢来
需要说明的是,从第二层开始,就得注意层面的摆放了,上一层的管脚向下弯折90度后,慢慢的向下放,保证管脚不能和下一层的短接。
第一二层没什么问题,第三次开始,就开始有难度了,越往后越难,因为管脚越来越密集,上层的管脚往下插的时候,要需要长时间的镊子矫正,才能完全放稳。
图6
6.8*8*8光立方大功告成。
如图7。
LED的焊接,把2个LED的负极焊接在一起。
注意焊接时候速度要快,要不然温度会损害LED.还有就是LED的负极不要碰到正极。
图7
7.焊接完毕通电后效果图,图8。
图8LED通电后效果图
2.2设计课题电路原理图
2.3设计课题电路PCB图
2.4设计课题电路元器件布局图
2.5设计课题元器件清单
元件名称
型号
位号
数量
电阻
200
R1
1个
电阻
1K
R2,R3
2个
电容
33pF
C1,C2
2个
极性电容
22uF
C3
1个
芯片
74HC573
U0~U7
8片
下载口
CON2
XZK1,XZK2
2个
电源插座
CON2
Ja
1个
USB
CON2
USB
1个
四脚开关
SW-PB
S1,S2a~S4a
4个
六脚开关
SW-SPST
SS
1个
晶振
12MHz
Y1
1个
单片机
STC89C516RD
U1
1片
电源指示灯LED
LED
D9
1个
芯片
ULN2803
2803
1片
插针
CON8
J0~J7,Jc,Jout
10个
单排插
CON9
Jb
1个
LED光立方
LED
512个
3设计课题软件系统的设计
3.13dLED光立方代码图形
显示正方体6x6x6
翻转
正方体拼图
3.2设计课题软件系统程序清单
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodef2[8][8]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00,
0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};//显示正方体6x6x6
ucharcodef7[8][8]=
{0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,
0x00,0x1E,0x21,0xC1,0xC1,0x21,0x1E,0x00,};//花瓶1
ucharcodef9[8][8]=
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};//旋转1
ucharcodef21[8][8]=
{0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,
0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,
0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,
0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,
0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,
0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};//翻转1
ucharcodef26[8][8]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x24,0x00,0x00,0x24,0x00,0x00,
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x24,0x00,0x00,0x24,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};//爆炸1
ucharcodef36[8][8]=
{0xE7,0xA5,0xE7,0x00,0x00,0xE7,0xA5,0xE7,
0xA5,0x00,0xA5,0x00,0x00,0xA5,0x00,0xA5,
0xE7,0xA5,0xE7,0x00,0x00,0xE7,0xA5,0xE7,
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0xE7,0xA5,0xE7,0x00,0x00,0xE7,0xA5,0xE7,
0xA5,0x00,0xA5,0x00,0x00,0xA5,0x00,0xA5,
0xE7,0xA5,0xE7,0x00,0x00,0xE7,0xA5,0xE7,};//正方体拼图1
*/
/********************************
函数名:
毫秒延时函数
函数功能:
产生毫秒级延时
函数入口:
cout需延时的毫秒数
函数出后:
无
*********************************/
voidDelay_1ms(uintcount)
{
uintj;
while(count--!
=0)
{
for(j=0;j<80;j++);
}
}
/********************************
函数名:
send_num
函数功能:
将一个面的数据送入74ls573
函数入口:
*p需要送入数据的起始地址
函数出后:
无
*********************************/
voidsend_num(uchar*p)
{
uchari,j=0xFE;
for(i=0;i<8;i++)
{
P0=j;
P1=*(p+i);
j=_crol_(j,1);
}
P0=0XFF;
}
/********************************
函数名:
send_dis
函数功能:
将8各面的数据给别送入573并动态显示出来
函数入口:
无
函数出后:
无
*********************************/
voidsend_dis1()
{
uchari,k,j=0x01;
for(k=0;k<5;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f1[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=5;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f1[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis2()
{
uchari,k,j=0x01;
for(k=0;k<2;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f5[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=2;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f5[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis3()
{
uchari,k,j=0x01;
for(k=0;k<2;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f7[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=2;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f7[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis4()
{
uchari,k,j=0x01;
for(k=0;k<12;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f9[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=5;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f9[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis5()
{
uchari,k,j=0x01;
for(k=0;k<5;k++)
{
for(i=0;i<5;i++)
{
P2=j;
send_num(f21[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=5;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f21[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis6()
{
uchari,k,j=0x01;
for(k=0;k<4;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f26[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=4;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f26[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis7()
{
uchari,k,j=0x01;
for(k=0;k<7;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f29[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=7;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f29[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis8()
{
uchari,k,j=0x01;
for(k=0;k<2;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f36[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=2;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f36[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis9()
{
uchari,k,j=0x01;
for(k=0;k<3;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f38[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=3;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f38[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidsend_dis10()
{
uchari,k,j=0x01;
for(k=0;k<8;k++)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f41[i]+k);
Delay_1ms
(2);
j=_crol_(j,1);
}
}
Delay_1ms
(1);
for(k=8;k<0;k--)
{
for(i=0;i<8;i++)
{
P2=j;
send_num(f41[i]+k);
Delay_1ms
(1);
j=_crol_(j,1);
}
}
}
voidmain()
{
while
(1)
{
send_dis1();
Delay_1ms
(1);
send_dis2();
Delay_1ms
(1);
send_dis3();
Delay_1ms
(1);
send_dis4();
Delay_1ms
(1);
send_dis5();
Delay_1ms
(1);
Delay_1ms
(1);
send_dis6();
Delay_1ms
(1);
send_dis7();
Delay_1ms
(1);
send_dis8();
Delay_1ms
(1);
send_dis9();
Delay_1ms
(1);
send_dis2();
Delay_1ms
(1);
send_dis4();
Delay_1ms
(1);
send_dis7();
Delay_1ms
(1);
send_dis4();
Delay_1ms
(1);
send_dis1();
Delay_1ms
(1);
send_dis8();
Delay_1ms
(1);
}
}
4设计结论
4.1设计总结与使用说明
通过这次3dLED光立方的设计,加强了我们动手、思考和解决问题的能力。
在整个设计过程中,我们通过这个方案包括设计了一套电路原理和PCB连接图,和芯片上的选择。
这个方案总共使用了STC89C516RD,ULN2803,74HC573八块。
我觉得做光立方设计的同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。
通过动手实践让我们对各个元件映象深刻。
认识来源于实践,实践是认识动力和最终目的,实践是检验真理的唯一标准。
3dLED光立方通过程序控制512个LED灯的亮灯与灭灯,从而显现出不同的形状,因为是8*8*8光立方,我们把它拆成8个面,每个面64个灯,或说成64束。
我们要控制这64个灯使其自由变换,把64个LED灯的阴极连接在一起,然后控制每个层依次点亮,达到我们预期的效果。
4.2电路的调试和调试出现的问题
完工以后抱着很激动的心情,编写了调试的程序,主要是检查全部的灯是否会亮,但是单把程序烧写进去之后,发现有一列没有点亮,还有一列灯中有个别灯不亮,还好两列的都在边上,进而如果换灯也相对容易,我们用排除法来检查电路,首先是检查灯的线路是否虚焊,断路,果真有一列的是断路了,把它接上后这一列也亮了,还剩下另外一列,我们用同样的方法来做,从驱动电路到显示的都没有问题,而且