彩色光立方创新实践.docx
《彩色光立方创新实践.docx》由会员分享,可在线阅读,更多相关《彩色光立方创新实践.docx(15页珍藏版)》请在冰点文库上搜索。
彩色光立方创新实践
目录
1彩色光立方的背景和意义2
2设计原理及方案2
2.1设计原理2
2.2设计方案5
3焊接及实现8
3.1底板焊接8
3.2LED焊接8
3.3实现检测13
4结论13
触控彩色3*3*3光立方
1彩色光立方的背景和意义
“联欢晚会三样法宝,光立方为最。
”自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注。
光立方简单讲就是用单片机控制很多规则排列的LED的亮和灭。
它有多种颜色可以变化,控制方式也有很多种,声控,触控,光控,按键等。
光立方由过个小的彩灯组成,可以组成不同的图案,幻化出不同的色彩,视觉上给人以极大的震撼,因而刚一面世随即受到人们很大的喜爱,在各种场合得到大量的使用,尤以晚会为多。
本次所设计彩色光立方为3*3*3立体结构,有红,蓝两种色彩,可组合变幻出不同图案及闪亮方式,可以触控,也可以通过吹动空气来触发色彩变幻。
2设计原理及方案
2.1设计原理
设计结构图如下图1:
电路图如下图2:
元件清单:
U1:
STC15F204EA
C1C2:
104电容
C3:
220uF电容
R1-R18:
1K102R19和R21:
10K103
R20:
2K202
R22R23:
1M105
MIC:
驻极体话筒
LR:
光敏电阻J1:
miniUSB插座
管脚说明如下表1:
2.2设计方案
本次设计方案分三步。
首先焊接PCB板底板,将各元器件焊接完好并检查有无虚链或者短路链接。
其次焊接背面彩光等,将其按照PCB板的指定位置焊接成3*3*3的立体结构,然后连接电路,将每层的灯串联起来,三层并联起来,最后,通电检查成品。
本次硬件设计使用已烧制好的PCB板。
其烧制程序如下:
#include
#include
sfrIAP_CONTER=0X07;
sbitMCU_START_LED=P1^7;
#defineRELOAD_COUNT0xfb;
voidseries_initinal();
voidsend_uart(unsignedchar);
voiduart_interrupt_receive(void);
voidsoft_reset_isp_monitor(void);
voiddelay(void);
voiddisplay_mcu_led(void);
voiduart_interrupt_receive(void)interrupt4
{
unsignedchark=0;
if(RI==1)
{
RI=0;
K=SBUF;
If(k==self_define_ISP_dowmload_commomd)//自定义下载命令
{
delay
(1);
Soft_reset_to_ISP_monitor();//软复位到ISP监控区
}
senduart(k);
}
else{TI=0;}
}
voidsoft_reset_to_ISP_monitor(void)
{
IAP_CONTER=0X60;
}
voiddelay()
{
Intj=0,g=0;
for(j=0;j<5;j++)
{
for(g=0;g<60000;g++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
voidserial_port_initinal(void)
{
SCON=0X50;
TMOD=0X21;
TH1=RELOAD_COUNT;
TL1=RELOAD_COUNT;
TR=1;//开定时器1
ES=1;//允许串口中断
EA=1;//开总中断
}
voidsend_uart(chari)
{
ES=0;//关串口中断
TI=0;//清零串口发送,完成串口中断标志
SBUF=I;
while(TI==0)
TI=0;
ES=1
}
voiddisplay_mcu_start_led(void)
{
unsignedchari=0;
for(i=0;i<3;i++)
{
mcu_start_led=0;
delay();
mcu_start_led=1;
delay();
mcu_start_led=0;
}
}
voidmain(void)
{
unsignedchari=0,j=0;
unsignedcharidata*itata_point;
seritial_port_initial();//串口初始化
display_mcu_start_led();//电量发光灯表示开始工作
send_uart(0x34);//串口发送数据表示串口开始工作
send_uart(0xa7);//串口发送数据表示串口开始工作
idata_point=0xf1;
for(j=0;j<6;j++)
{
i=*idata_point;
send_uart(i);
idata_point++;
}
while
(1);
}
3焊接及实现
3.1底板焊接
将清单中各元器件按照既定位置焊接到PCB板上。
下面是焊接完成后的图2:
焊接完成底板后最好仔细检查一下是否有虚焊或者短路的地方,以免上电后由于某处短路或者虚焊造成器件损坏。
3.2LED焊接
焊接LED之前,要注意两点:
1:
首先用万用表检查LED是否都完好,焊接的时候烙铁的温度不宜太高,一般使用20W的电烙铁焊接就可以了,最好使用焊台,因为LED是很怕静电的,尤其是绿灯和蓝灯。
2:
焊接LED时烙铁接触LED管脚的时间最好不要超过3秒,如果对自己的焊接技术没什么信心,最好先练习一下再动手焊,这样可以尽量避免LED出现“死灯”现象,不然更换坏灯会非常麻烦。
首先,我们先做LED“地基”,这部分很重要,焊的好不好直接影响到上面3层的焊接,所以一定要仔细小心尽量焊好每一个LED。
LED最短的那根脚对应PCB板LED封装方形的那一个焊盘,焊接前,稍微把LED最左很最右边的脚稍微掰一下,这样就可以利用LED管脚上面的卡位做固定,然后插到LED封装上,尽量使其垂直于板子。
如图3:
以此类推,每一排和每一列都尽量使其垂直于板子,每焊接一个LED,都用眼睛瞄一下每LED是否都在一条水平线上(横排和竖排都要瞄一下是否水平)。
底板焊接完后LED的效果如下图4:
此时最底层的LED都焊接完,可以上电测试一下LED是否会亮,是否有死灯,按键是否有效果,如果LED不亮,则用万用表检查一下底板的器件焊接是否有虚焊或者短路情况,测一下单片机的12脚和14脚之间是否有5V电压。
确定底层所有LED都正常,把4个铜柱子安装上,我们可以开始做上面三层的LED焊接了。
焊接前都要掰成如下形状,中间脚与其他两根脚成90度。
请注意,中间管脚掰的方向不要弄反了,LED三根脚的长度是不一样的,因为下层的LED跟上层的LED焊接的原则是短脚跟短脚焊在一起,长脚跟长脚焊在一起,中间的脚是公共端,每一层的所有LED的公共端(也就是LED中间那根脚)都要连在一起。
在LED的一根管脚上面先上一些锡。
如下图5:
然后用手握住LED固定好,LED管脚上面有突出的地方(就是卡位,我:
们以那个卡位为标准,这样焊出来每一层LED的高度都会一致),融化焊锡固定引脚,冷却后加焊锡固定另一边的引脚,LED中间那根引脚是如下图那样往里掰的,LED最短的引脚在右边。
如下图6:
每一列的LED引脚都用上面的方法焊接,下面讲一下公共端的连接,在中间那那个LED弯曲处先上一些锡,上锡时要小心,烙铁不要碰到LED胶体。
然后把橙色箭头指着的这一根引脚搭焊在之前上锡的那个地方这样就可以固定好了,以此类推,最外面的那个LED的公共端也是用这种方法固定,完成后如下图7:
其他的几列LED都是跟上面一样的处理,基本上就是重复再重复。
一层搞定,然后往上一层也是一样的做法,每一层之前的高度就是以LED那个卡位为准,之前已经说过,再次强调一下。
所有的LED搭焊起来的效果如下,此时多出来的引脚先不要剪掉(如橙色方框里面的那些)。
现在拨开红色导线的外皮,我们要取出里面的银色导线。
此时用银色导线把多出来的公共端连起来,尽量靠里面连起来,这样就好看一些。
全部都用银色导线连接起来后,此时剪掉所有多余的管脚,完成后如下图8所示:
做到此时,我们还要用三根白色导线连接上面三层的公共端,观察一下底板,你会发现有三个焊盘标注着com2,com3,com4以及有3个小洞(红色方框处)我们要用白色导线焊在这几个焊盘然后通过小洞拉出导线焊接到每一层的公共端(也就是刚才的银色导线那里)。
连com4的线接到第4层,com3接到第3层,com2接到第2层。
OK,完成了这一步后,制作完成。
成品图如下图9,图10:
3.3实现检测
按键功能说明:
K1:
每按一次,LED会有不同的花式变化
K2:
按第一次是自动播放模式,第二次是声控效果,第三次是光控效果(关灯或者用手挡住光敏电阻LED就会有变色效果)效果如下:
4结论
1:
焊接后的成品经USB线供电后,全部小LED灯都正常发光,触摸板子上得KEY1和KEY2按键,会依次进入自动播放模式,声控模式,光控模式发光。
2:
三种模式播放说明对每一层,每一列,阴极和阳极的焊接正常,无短路和断路的情况发生,也说明单片机内部芯片内嵌程序的正常执行。
3:
光控模式下对光的灵敏度有待提高,自身的焊接技术也需要加强。