当前位置: 幻彩灯珠>>灯珠资讯>> rgb灯怎么用单片机控制 51单片机rgb灯珠程序

rgb灯怎么用单片机控制 51单片机rgb灯珠程序

rgb灯怎么用单片机控制 51单片机rgb灯珠程序

rgb灯是如何由单片机控制的(51单片机rgb灯珠程序)

光立方教程虽然说街道已经腐烂了,但是成就感还不错。每个人做的事情都有不同。这个没那么难。考验是耐力。我个人推荐能做的事就玩。基于单片机爱好者对单片机学习的热情,光立方是学习单片机非常好的练习材料,以8*8*8光立方为例,这是512个发光二极管像立方体那样构建并焊接的,有层共阴束共阳和层共阳束共阴两个方案,各层8*8个发光二极管,共8层通过c语言编译单片机程序来实现自定义动画效果。你的思考范围有多宽,光立方的动画有多大。大家光立方制作的,是为了随意控制所有的珠子,实现自己思考的优秀动画。那么,从光立方的原理开始吧。说原理的话,头会痛吧。

光立方系统框图

单LED控制方式

首先,为了理解单个LED的控制方式,可以将正极连接到电源上,通过一个限流电阻将负极连接到单片机的某个IO端口上。IO端口输出低时,LED亮灯,反之LED熄灯。

单LED控制模拟原理图

如果想驱动任意位置的LED,则可以将用于该位置的LED的列线接地,并将行线连接到+V。学习了单机的朋友们知道电子管是怎么点亮的。其中,通过扫描,所有的数字管都能正常工作,并且可以显示我们想要的数字。

点矩阵也同样,尽管是8*8的点矩阵,如果能让整体随意显示图案,就需要通过扫描来实现。不那样做的话,就无法实现正确的控制。所谓扫描,就是一次只点亮一列或纵向的灯。每次只能这样,八次是一个周期,从左到右依次订购一次,那么循环,我们看到的是完整的图像。

8*8点矩阵模拟原理图

8*8点矩阵-部分组件

各层LED的控制方式

在单LED的控制方式中,各LED需要占有一个单片机的IO端口,为了控制100个LED需要100个IO端口。那么,有没有可以用较少的IO端口控制更多LED的方法呢?答案是肯定的,这个方法是扫描驱动电路。

因此,一般来说,光立方的各层有64个灯,但分别与64个灯连接线,能够一次控制64个灯,通常单片机的销很少,一般采用74hc573、74hc595等芯片进行扩展。

光立方74hc573芯片的扩展模拟原理图

8*8*8光立方仿真原理图

8*8*8光立方LED的控制方式

首先必须准备工具、材料、理论图。

所需工具:

喷嘴钳子、

电络铁、

放大镜

材料列表:

发光二极管(2*3*4led灯512个)

限流电阻(64个500欧姆电阻限制每束的电流)

洞洞板(20cm*20cm),

单芯片机最小系统stc12c5aRD+芯片)

锁存器(8个74hc573

8路NPN达林顿管(1个uln2803),

ic插座(40个孔9个)、

焊田2卷,导线若干。

数据被并列输入74hc573,控制器存储这些数据,实现1层64个灯的同时点亮。以下,说明一个固定画面的显示、必要的硬件执行的过程。

1)将第1层64点的数据传送到8个74hc573,控制uln2803层控制芯片导通第1层开关,点亮第1层,此时其他层熄灭。

2)等待时间t。

3)熄灭第1层,开始向74hc573传送第2层的数据,锁存,开启第2层总控制开关,点亮第2层。

4)等待时间t。

熄灭第一层,将第八层的数据传送至所有74hc573,锁存,开启第八层的总开关,点亮第八层。

再回到第一步,继续循环。。

4*4*4RGB光立方8*8*8R光立方

由此,实现了一个周期的画面显示,因为人的眼睛的视觉暂时残留的特性,所以只要刷新得很快,我们看到的是光立方整体都很明亮。为了实现我们所期望的效果使画面稳定,上间隔点灯t必须一致。否则会发生亮度不均。

在实际使用上述电路的情况下,如果分别在74hc573输出的64针上一个一个地加上限流电阻,则在二极管保护作用、整体消耗功率的限制、亮度的调整上优异。

8*8*8光立方

8*8*8光立方调试

8*8*8光立方点亮效果图

8*8*8光立方平面图

8*8*8光立方显示效果图

8*8*8动画效果图

4*4*4 RGB光立方

RGB光立方是全色光立方,能够显示全色rgb是全色LED焊接。RGB LED除了将红、绿、蓝三色混合后以三原色共同交叉成像之外,也有在蓝色LED中配合黄色荧光粉,在紫外线LED中配合rgb荧光体的灯。有些LED背光板的颜色特别鲜明鲜明,甚至高画质的电视也在一定程度上,这种情况正是rgb的特色,红标榜红、绿、蓝标榜蓝的特性,在光的混合上,更具多元性的特性。

rgb全色LED灯尺寸销图

4*4*4RGB光立方仿真原理图

4*4*4RGB光立方有64个rgb的全彩色LED,控制有192个I/O,使用6个锁存器、限流电阻、上拉电阻若干、单片机最小系统stc12c5a等部件。

4*4*4RGB光立方基板走线

4*4*4RGB光立方测试

4*4*4RGB光立方调试图

4*4*4RGB光立方演示

4*4*4RGB光立方效果图

4*4*4RGB光立方动画图

4*4*4RGB光立方绿色调试

4*4*4RGB光立方混色调试

最后附上酱汁。

#includelt;stc12c5a.hgt;

#include lt;intrins.hgt;

#define uint unsigned int

#define uchar unsigned char

uchar u=1;

sbit keyout=P4^4;

uint code tab_water={

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0220,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x01c0,0x0220,0x0410,0x0410,0x0410,0x0220,0x01c0,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x03e0,0x0410,0x0808,0x0808,0x0808,0x0808,0x0808,0x0410,0x03e0,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x07f0,0x0808,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x0808,0x07f0,0x0000,0x0000,0x0000,

0x0000,0x0ff8,0x1004,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x1004,0x0ff8,0x0000,0x0000,

0x1ffc,0x2002,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x2002,0x1ffc,0x0000

};

char code tab00={7,7,7,7,7,7,7,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,1,2,3,4,5,6,//28

8+6,8+6,8+6,8+6,8+6,8+6,8+5,8+4,8+3,8+2,8+1,8+1,8+1,8+1,8+1,8+1,8+2,8+3,8+4,8+5,//20

16+5,16+5,16+5,16+5,16+4,16+3,16+2,16+2,16+2,16+2,16+3,16+4,//12

24+4,24+4,24+3,24+3,//24+4

32+4,32+4,32+3,32+3,

40+5,40+5,40+5,40+5,40+4,40+3,40+2,40+2,40+2,40+2,40+3,40+4,//12

48+6,48+6,48+6,48+6,48+6,48+6,48+5,48+4,48+3,48+2,48+1,48+1,48+1,48+1,48+1,48+1,48+2,48+3,48+4,48+5,//20

56+7,56+7,56+7,56+7,56+7,56+7,56+7,56+7,56+6,56+5,56+4,56+3,56+2,56+1,56+0,56+0,56+0,56+0,56+0,56+0,56+0,56+0,56+1,56+2,56+3,56+4,56+5,56+6//28

};

char code tab10={56+7,56+7,56+7,56+7,56+7,56+7,56+7,56+7,56+6,56+5,56+4,56+3,56+2,56+1,56+0,56+0,56+0,56+0,56+0,56+0,56+0,56+0,56+1,56+2,56+3,56+4,56+5,56+6,//56+28

…………………。

太多的愿望!不粘贴的尝试!如果有必要的话。。。

来源头部

来源中间

来源尾部