LED Cube 7x7x7
组件和用品
| × | 1 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 49 | ||||
| × | 1 |
必要的工具和机器
|
关于这个项目
一直想做自己的LED立方体,现在分享给大家。
第一步
首先要做的是创建LED矩阵。
在本例中,我创建了七个 7x7 LED 矩阵。
我将阳极和阴极分开,并按行和列焊接它们,因此最后每个 LED 矩阵有 7 个阳极和 7 个阴极。
步骤 2
现在您需要必要的硬件来使用 LED 立方体。
如果您不太了解电子,这是最困难的部分。
但我尽量把这部分解释清楚。
我用过7个74HC574。
这个IC是一个8位D Flip Flop,它是一个8位存储器。通过这种方式,我可以在它们上加载一些位以查看立方体上的图像。我需要七个 74HC574 因为有七个 LED 矩阵。
我还需要 7 个 NPN 晶体管来决定打开哪一层。
通过这种方式,通过多路复用器技术,我可以在所有立方体上可视化图像。
最后我还需要一个 74LS138,它是一个 3 到 8 线解码器解复用器,所以有了它我可以只用 3 位控制所有触发器,因为它们还需要一个脉冲来保存数据。
这是硬件框图:
电路是我自己做的,我用的是Arduino的ATmega328P独立版。
你可以看到下面的所有电路图。
步骤 3
您还需要一个用于硬件和 LED 立方体的结构。我用了一些木头做的。
之后就可以组装了,每个LED矩阵必须放在另一个矩阵的前面,每层的阴极都连接到同一个晶体管。
第 4 步
最后,您可以编写代码来制作立方体,上面的框图可以帮助您编写代码。
这部分可能会很混乱,但通过一些练习会更容易。
下面的代码代表了最简单的动画,因为其他动画太长了,但只要有一点幻想,你就可以做任何你想做的事。
代码
- 动画
动画Arduino
//这段代码代表了最简单的LED CUBE动画int temp =50, cont =0;//这个函数加载所有cubevoid load_all(void) { //layer 1 digitalWrite(A2, LOW);数字写入(A1,低);数字写入(A0,低);延迟(1); //第2层digitalWrite(A2, HIGH);数字写入(A1,低);数字写入(A0,低);延迟(1); //第3层digitalWrite(A2, LOW);数字写入(A1,高);数字写入(A0,低);延迟(1); //第4层digitalWrite(A2, HIGH);数字写入(A1,高);数字写入(A0,低);延迟(1); //第5层digitalWrite(A2, LOW);数字写入(A1,低);数字写入(A0,高);延迟(1); //第6层digitalWrite(A2, HIGH);数字写入(A1,低);数字写入(A0,高);延迟(1); //第7层digitalWrite(A2, LOW);数字写入(A1,高);数字写入(A0,高);延迟(1); //第8层digitalWrite(A2, HIGH);数字写入(A1,高);数字写入(A0,高); delay(1);}//这个函数每层激活一次,你可以决定该层开启的时间void scrolling(int t) { PORTB =0x00;数字写入(7,高);延迟(t);数字写入(7,低);数字写入(8,高);延迟(t);数字写入(8,低);数字写入(9,高);延迟(t);数字写入(9,低);数字写入(10,高);延迟(t);数字写入(10,低);数字写入(11,高);延迟(t);数字写入(11,低);数字写入(12,高);延迟(t);数字写入(12,低);数字写入(13,高);延迟(t); digitalWrite(13, LOW);}//这个动画每次打开一层,它增加了它的速度,所以最后你看到所有立方体都切换到void one(void) { PORTD =0xff; load_all();而(1){滚动(温度);温度 =温度 - 2;如果(温度 <=0){ 温度 =1;续++; if (cont ==1000) { cont =0;温度 =100; } } }}void setup() { DDRD =0xff; DDRB =0xff; DDRC =0xff;}void loop() { one();}
定制零件和外壳
gestione_mankWMoVhz.sch示意图
我使用图像进行组件排列制造工艺