Ks0182 keyestudio LED Cube Kit: Difference between revisions
Keyestudio (talk | contribs) |
Keyestudio (talk | contribs) |
||
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Introduction== | ==Introduction== | ||
For ARDUINO starters, we’d love to do projects that would blow people’s mind off. But without certain basic knowledge of electronics, | For ARDUINO starters, we’d love to do projects that would blow people’s mind off. But without certain basic knowledge of electronics,you may find it difficult to do complicated projects such as robots, 3D printers etc. This 4x4x4 LED Cube kit we developed is no doubt your best choice. | ||
as robots, 3D printers etc. This 4x4x4 LED Cube kit we developed is no doubt your best choice. | |||
So what is LED Cube? Well, by the name of it, we can tell it may be a light emitting cube. We use 64 LEDs to solder a 4*4*4 3D-matrix. Each face of the cu¬¬be or should we say each dot of the cube will emit beautiful light. | So what is LED Cube? Well, by the name of it, we can tell it may be a light emitting cube. We use 64 LEDs to solder a 4*4*4 3D-matrix. Each face of the cu¬¬be or should we say each dot of the cube will emit beautiful light. | ||
This 3D LED cube is based on ARDUINO, an open-source environment. So it also has features of open-source and easy-to-use. Even for enthusiasts without solid electronic knowledge, you can make projects that are going to amaze others! | This 3D LED cube is based on ARDUINO, an open-source environment. So it also has features of open-source and easy-to-use. Even for enthusiasts without solid electronic knowledge, you can make projects that are going to amaze others! | ||
==Features== | ==Features== | ||
Line 35: | Line 32: | ||
6.3*6 inner-hexagon screw(4 PCS)<br> | 6.3*6 inner-hexagon screw(4 PCS)<br> | ||
7.3M nut(4 PCS) <br> | 7.3M nut(4 PCS) <br> | ||
* Self-prepare tools:<br> | *Self-prepare tools:<br> | ||
*Soldering iron、Tinny line、Inner-hexagon too<br> | |||
<br>[[File:ks0182-3.png|500px|frameless|thumb]]<br> | <br>[[File:ks0182-3.png|500px|frameless|thumb]]<br> | ||
Line 48: | Line 45: | ||
<br>[[File:ks0182-6.png|500px|frameless|thumb]]<br> | <br>[[File:ks0182-6.png|500px|frameless|thumb]]<br> | ||
Set four nuts in in the kit as shown above,then put four stand horizontal plates on the soldering | Set four nuts in in the kit as shown above,then put four stand horizontal plates on the soldering jig,<br> | ||
and black lines on the stand horizontal plates aims to indicate the place of subsequent soldering holder boards.<br> | |||
<br>[[File:ks0182-7.png|500px|frameless|thumb]]<br> | <br>[[File:ks0182-7.png|500px|frameless|thumb]]<br> | ||
Place the soldering jig on four nuts, and then put two horizontal holder board on the stand horizontal plate between black lines, and finally add tin to fix them on eight welding spots by soldering iron.<br> | Place the soldering jig on four nuts, and then put two horizontal holder board on the stand horizontal plate between <br> | ||
black lines, and finally add tin to fix them on eight welding spots by soldering iron.<br> | |||
<br>[[File:ks0182-8.png|500px|frameless|thumb]]<br> | <br>[[File:ks0182-8.png|500px|frameless|thumb]]<br> | ||
Line 58: | Line 57: | ||
<br>[[File:ks0182-9.png|500px|frameless|thumb]]<br> | <br>[[File:ks0182-9.png|500px|frameless|thumb]]<br> | ||
Continuously solder four stands as above steps.<br> | Continuously solder four stands as above steps.<br> | ||
'''Install upright stand'''<br> | |||
<br>[[File:ks0182-10.png|500px|frameless|thumb]]<br> | |||
Every upright has its own place and can’t be installed mistakenly, so before installing confirm the place of every upright. <br> | |||
As shown above , Upright A must be inserted in the aperture on the Chassis A, and Upright B must be inserted in the aperture on the Chassis B. <br> | |||
Continue like this until eight uprights are inserted in the aperture of corresponding letters on the chassis. <br> | |||
<br>[[File:ks0182-11.png|500px|frameless|thumb]]<br> | |||
As shown above , place properly four horizontal plates in the same direction, and install Upright A on the gap. Don’t add tin to solder after installing. | |||
<br>[[File:ks0182-12.png|500px|frameless|thumb]]<br> | |||
As shown above , install respectively Upright C, E, G according to the previous step. | |||
<br>[[File:ks0182-13.png|500px|frameless|thumb]]<br> | |||
As shown above , install Upright B on the gap. Don’t add tin to solder after installing. | |||
<br>[[File:ks0182-14.png|500px|frameless|thumb]]<br> | |||
As shown above , install respectively Upright D,F, H according to the previous step. | |||
<br>[[File:ks0182-15.png|500px|frameless|thumb]]<br> | |||
Tighten four copper bushes in the control board by using four 3M nuts. | |||
<br>[[File:ks0182-16.png|500px|frameless|thumb]]<br> | |||
After the stand inserted the chassis, adjust them to be vertical. | |||
<br>[[File:ks0182-17.png|500px|frameless|thumb]]<br> | |||
According to last step, add tin to solder the bonding pad between horizontal stand and upright by soldering iron. <br> | |||
If there is bonding pad on horizontal stand but not on upright, don’t need to add tin to solder. | |||
<br>[[File:ks0182-18.png|500px|frameless|thumb]]<br> | |||
After soldering all bonding pads, please check carefully whether there are welding spots lacking tin. Welded finished product as shown above. | |||
<br>[[File:ks0182-19.png|500px|frameless|thumb]]<br> | |||
As shown above, fix four copper bushes on Acrylic chassis by four3*6 inner-hexagon screws. | |||
<br>[[File:ks0182-20.png|500px|frameless|thumb]]<br> | |||
Install four Acrylic side plates in the slot of Acrylic chassis. | |||
<br>[[File:ks0182-21.png|500px|frameless|thumb]]<br> | |||
Next, install Acrylic crown sheet according to slots. | |||
<br>[[File:ks0182-22.png|500px|frameless|thumb]]<br> | |||
After installing , upset it according to above picture, and then lock tightly | |||
Acrylic chassis with Acrylic side plate by using two 3*10 inner-hexagon screws and two 3M nuts. | |||
<br>[[File:ks0182-23.png|500px|frameless|thumb]]<br> | |||
As shown above, a tightening chassis. | |||
<br>[[File:ks0182-24.png|500px|frameless|thumb]]<br> | |||
Then tighten the screws of Acrylic crown sheet, and as shown above, it is the finished product after installing. | |||
==Program == | |||
'''Wiring: ''' | |||
{| width="80%" cellspacing="0" border="1" | |||
|- | |||
! align="center" scope="col" | Control board | |||
! align="center" scope="col" | Arduino FTDI basic program downloader | |||
|- | |||
| align="center" | VDD | |||
| align="center" | 5V | |||
|- | |||
| align="center" | GND | |||
| align="center" | GND | |||
|- | |||
| align="center" | DTR | |||
| align="center" | RST | |||
|- | |||
| align="center" | TXD | |||
| align="center" | RXD | |||
|- | |||
| align="center" | RXD | |||
| align="center" | TXD | |||
|- | |||
|} | |||
'''Connection diagram: ''' | |||
<br>[[File:ks0182-25.png|700px|frameless|thumb]]<br> | |||
'''Sample code: ''' | |||
<pre> | |||
#include <avr/pgmspace.h> | |||
#define CUBESIZE 4 | |||
#define PLANESIZE CUBESIZE*CUBESIZE | |||
#define PLANETIME 3333 | |||
#define TIMECONST 20 | |||
prog_uchar PROGMEM PatternTable[] = { | |||
///////////////////Generate animated code and paste here//////////////////// | |||
B0001,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0011,B0000,B0000,B0000,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0011,B0010,B0000,B0000,B0011,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0011,B0011,B0000,B0000,B0011,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B0000,B0000,B0000,B0011,B0011,B0000,B0000,B0011,B0011,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B0000,B0000,B0001,B0011,B0111,B0000,B0001,B0011,B0111,B0000,B0000,B0001,B0011,10, | |||
B0000,B0000,B0000,B0000,B0000,B0011,B0111,B0111,B0000,B0011,B0111,B0111,B0000,B0001,B0011,B0111,10, | |||
B0000,B0000,B0000,B0000,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,B0000,B0011,B0111,B0111,10, | |||
B0000,B0000,B0000,B0000,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,10, | |||
B0000,B0000,B0000,B0000,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,10, | |||
B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B0000,B0000,B0000,10, | |||
B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1100,B1110,B1110,B0000,B0000,B0000,B0000,10, | |||
B0000,B1110,B1110,B1110,B0000,B1100,B1110,B1110,B0000,B1000,B1100,B1110,B0000,B0000,B0000,B0000,10, | |||
B0000,B1100,B1110,B1110,B0000,B1000,B1100,B1110,B0000,B0000,B1000,B1100,B0000,B0000,B0000,B0000,10, | |||
B0000,B1000,B1100,B1110,B0000,B0000,B1000,B1100,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B1000,B1100,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B0000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B1000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B1100,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B1110,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B1110,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, | |||
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, 0 | |||
}; | |||
int LEDPin[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1}; | |||
int PlanePin[] = {A2, A3, A4, A5}; | |||
void setup() | |||
{ | |||
int pin; | |||
for (pin=0; pin<PLANESIZE; pin++) { | |||
pinMode( LEDPin[pin], OUTPUT ); | |||
} | |||
for (pin=0; pin<CUBESIZE; pin++) { | |||
pinMode( PlanePin[pin], OUTPUT ); | |||
} | |||
} | |||
void loop() | |||
{ | |||
byte PatternBuf[PLANESIZE]; | |||
int PatternIdx; | |||
byte DisplayTime; | |||
unsigned long EndTime; | |||
int plane; | |||
int patbufidx; | |||
int ledrow; | |||
int ledcol; | |||
int ledpin; | |||
PatternIdx = 0; | |||
do { | |||
memcpy_P( PatternBuf, PatternTable+PatternIdx, PLANESIZE ); | |||
PatternIdx += PLANESIZE; | |||
DisplayTime = pgm_read_byte_near( PatternTable + PatternIdx++ ); | |||
EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST; | |||
while ( millis() < EndTime ) { | |||
patbufidx = 0; | |||
for (plane=0; plane<CUBESIZE; plane++) { | |||
if (plane==0) { | |||
digitalWrite( PlanePin[CUBESIZE-1], HIGH ); | |||
} else { | |||
digitalWrite( PlanePin[plane-1], HIGH ); | |||
} | |||
ledpin = 0; | |||
for (ledrow=0; ledrow<CUBESIZE; ledrow++) { | |||
for (ledcol=0; ledcol<CUBESIZE; ledcol++) { | |||
digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol) ); | |||
} | |||
patbufidx++; | |||
} | |||
digitalWrite( PlanePin[plane], LOW ); | |||
delayMicroseconds( PLANETIME ); | |||
} | |||
} | |||
} while (DisplayTime > 0); | |||
} | |||
</pre> | |||
When uploading the code, remember to select the Board '''Arduino Uno'''. | |||
<br>[[File:0182.png|500px|frameless|thumb]]<br> | |||
After program is uploaded, with power on, you can see the beautiful light effect. | |||
<br>[[File:ks0182-26.png|700px|frameless|thumb]]<br> | |||
<br> | |||
==Resources for the project== | |||
'''ARTDUINO software download address:'''<br> | |||
https://www.arduino.cc/en/Main/Software<br> | |||
'''Project code address:''' <br> | |||
http://www.instructables.com/id/4x4x4-LED-Cube-Arduino-Uno/<br> | |||
http://www.instructables.com/id/The-4x4x4-LED-cube-Arduino/<br> | |||
http://www.makeuseof.com/tag/how-to-make-a-pulsating-arduino-led-cube-that-looks-like-it-came-from-the-future/<br> | |||
'''Video address:'''<br> | |||
http://video.keyestudio.com/KS0182/ | |||
'''PDF:'''<br> | |||
https://fs.keyestudio.com/KS0182 | |||
<br> | |||
==Buy from == | |||
*[https://www.keyestudio.com/2017-new-keyestudio-4x4x4-led-cube-kit-for-arduino-project-with-ftdi-module-user-manual-p0131-p0131.html '''Official Website''' ] | |||
*'''Amazon''' <br> | |||
https://www.amazon.com/Keyestudio-light-Arduino-Diffuse-Light/dp/B01K1UKI46/ | |||
*[https://www.amazon.de/KEYESTUDIO-Arduino-Controller-Kompatibel-tmega328/dp/B01KBVJKIA/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=keyestudio+LED+Cube+Kit&qid=1573462526&sr=8-1 '''Amazon.de'''] | |||
*[https://www.amazon.fr/keyestudio-Cube-Arduino-Compatible-tmega328/dp/B01KBVJKIA/ref=sr_1_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=keyestudio+LED+Cube+Kit&qid=1573462661&sr=8-2 '''Amazon.fr'''] | |||
*[https://www.amazon.it/KEYESTUDIO-Keyestidio-Tutorial-Learing-Apprendimento/dp/B01KBVJKIA/ref=sr_1_1?__mk_it_IT=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=keyestudio+LED+Cube+Kit&qid=1573462745&sr=8-1 '''Amazon.it'''] | |||
*[https://www.amazon.es/keyestidio-RGB-Arduino-Compatible-tmega328-DIY/dp/B01KBVJKIA/ref=sr_1_1?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=keyestudio+LED+Cube+Kit&qid=1573462864&sr=8-1 '''Amazon.es'''] | |||
*[https://www.amazon.co.uk/keyestudio-Tmega328-Starter-Controller-Arduino/dp/B01KBVJKIA/ref=sr_1_2?keywords=keyestudio+LED+Cube+Kit&qid=1573462912&sr=8-2'''Amazon.uk'''] | |||
<br> | |||
[[Category:Starter Kit]] |
Latest revision as of 09:02, 17 March 2021
Introduction
For ARDUINO starters, we’d love to do projects that would blow people’s mind off. But without certain basic knowledge of electronics,you may find it difficult to do complicated projects such as robots, 3D printers etc. This 4x4x4 LED Cube kit we developed is no doubt your best choice.
So what is LED Cube? Well, by the name of it, we can tell it may be a light emitting cube. We use 64 LEDs to solder a 4*4*4 3D-matrix. Each face of the cu¬¬be or should we say each dot of the cube will emit beautiful light.
This 3D LED cube is based on ARDUINO, an open-source environment. So it also has features of open-source and easy-to-use. Even for enthusiasts without solid electronic knowledge, you can make projects that are going to amaze others!
Features
- Adopts 64 blue LEDs
- working voltage: 5V
- working current: 150MA
- power input with built-in voltage step-up circuit
- compatible with ARDUINO open-source hardware
- comes with animations program
- Simple assembly using a PCB frame
- can work off-line (doesn’t require a computer after program is uploaded)
Part list
1. Control panel (1 PCS)
2. Soldering jig (1 PCS)
3. Acrylic chassis (1 PCS)
4. Acrylic crown sheet (1 PCS)
5、6、7、8. Acrylic side plate ,then No. 6 and 8 is the same (4 PCS in total)
1.Stand horizontal plate(16 PCS)
2.Stand upright column board (8 PCS
3.Horizontal holder board (8 PCS)
4.Copper bush (4 PCS)
5.3*10 inner-hexagon screw(4 PCS)
6.3*6 inner-hexagon screw(4 PCS)
7.3M nut(4 PCS)
- Self-prepare tools:
- Soldering iron、Tinny line、Inner-hexagon too
Step by step soldering instructions
Solder the stand horizontal plates
Unpick the stand horizontal plates as shown above.
Unpick the horizontal holder boards following the previous step.
Set four nuts in in the kit as shown above,then put four stand horizontal plates on the soldering jig,
and black lines on the stand horizontal plates aims to indicate the place of subsequent soldering holder boards.
Place the soldering jig on four nuts, and then put two horizontal holder board on the stand horizontal plate between
black lines, and finally add tin to fix them on eight welding spots by soldering iron.
Stand soldered by eight welding spots above.
Continuously solder four stands as above steps.
Install upright stand
Every upright has its own place and can’t be installed mistakenly, so before installing confirm the place of every upright.
As shown above , Upright A must be inserted in the aperture on the Chassis A, and Upright B must be inserted in the aperture on the Chassis B.
Continue like this until eight uprights are inserted in the aperture of corresponding letters on the chassis.
As shown above , place properly four horizontal plates in the same direction, and install Upright A on the gap. Don’t add tin to solder after installing.
As shown above , install respectively Upright C, E, G according to the previous step.
As shown above , install Upright B on the gap. Don’t add tin to solder after installing.
As shown above , install respectively Upright D,F, H according to the previous step.
Tighten four copper bushes in the control board by using four 3M nuts.
After the stand inserted the chassis, adjust them to be vertical.
According to last step, add tin to solder the bonding pad between horizontal stand and upright by soldering iron.
If there is bonding pad on horizontal stand but not on upright, don’t need to add tin to solder.
After soldering all bonding pads, please check carefully whether there are welding spots lacking tin. Welded finished product as shown above.
As shown above, fix four copper bushes on Acrylic chassis by four3*6 inner-hexagon screws.
Install four Acrylic side plates in the slot of Acrylic chassis.
Next, install Acrylic crown sheet according to slots.
After installing , upset it according to above picture, and then lock tightly
Acrylic chassis with Acrylic side plate by using two 3*10 inner-hexagon screws and two 3M nuts.
As shown above, a tightening chassis.
Then tighten the screws of Acrylic crown sheet, and as shown above, it is the finished product after installing.
Program
Wiring:
Control board | Arduino FTDI basic program downloader |
---|---|
VDD | 5V |
GND | GND |
DTR | RST |
TXD | RXD |
RXD | TXD |
Sample code:
#include <avr/pgmspace.h> #define CUBESIZE 4 #define PLANESIZE CUBESIZE*CUBESIZE #define PLANETIME 3333 #define TIMECONST 20 prog_uchar PROGMEM PatternTable[] = { ///////////////////Generate animated code and paste here//////////////////// B0001,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0011,B0000,B0000,B0000,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0011,B0010,B0000,B0000,B0011,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0011,B0011,B0000,B0000,B0011,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B0000,B0000,B0000,B0011,B0011,B0000,B0000,B0011,B0011,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B0000,B0000,B0001,B0011,B0111,B0000,B0001,B0011,B0111,B0000,B0000,B0001,B0011,10, B0000,B0000,B0000,B0000,B0000,B0011,B0111,B0111,B0000,B0011,B0111,B0111,B0000,B0001,B0011,B0111,10, B0000,B0000,B0000,B0000,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,B0000,B0011,B0111,B0111,10, B0000,B0000,B0000,B0000,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,B0000,B0111,B0111,B0111,10, B0000,B0000,B0000,B0000,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,10, B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B0000,B0000,B0000,10, B0000,B1110,B1110,B1110,B0000,B1110,B1110,B1110,B0000,B1100,B1110,B1110,B0000,B0000,B0000,B0000,10, B0000,B1110,B1110,B1110,B0000,B1100,B1110,B1110,B0000,B1000,B1100,B1110,B0000,B0000,B0000,B0000,10, B0000,B1100,B1110,B1110,B0000,B1000,B1100,B1110,B0000,B0000,B1000,B1100,B0000,B0000,B0000,B0000,10, B0000,B1000,B1100,B1110,B0000,B0000,B1000,B1100,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,10, B0000,B0000,B1000,B1100,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000,B0000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B1000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B1100,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B1110,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B1110,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,10, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, 0 }; int LEDPin[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1}; int PlanePin[] = {A2, A3, A4, A5}; void setup() { int pin; for (pin=0; pin<PLANESIZE; pin++) { pinMode( LEDPin[pin], OUTPUT ); } for (pin=0; pin<CUBESIZE; pin++) { pinMode( PlanePin[pin], OUTPUT ); } } void loop() { byte PatternBuf[PLANESIZE]; int PatternIdx; byte DisplayTime; unsigned long EndTime; int plane; int patbufidx; int ledrow; int ledcol; int ledpin; PatternIdx = 0; do { memcpy_P( PatternBuf, PatternTable+PatternIdx, PLANESIZE ); PatternIdx += PLANESIZE; DisplayTime = pgm_read_byte_near( PatternTable + PatternIdx++ ); EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST; while ( millis() < EndTime ) { patbufidx = 0; for (plane=0; plane<CUBESIZE; plane++) { if (plane==0) { digitalWrite( PlanePin[CUBESIZE-1], HIGH ); } else { digitalWrite( PlanePin[plane-1], HIGH ); } ledpin = 0; for (ledrow=0; ledrow<CUBESIZE; ledrow++) { for (ledcol=0; ledcol<CUBESIZE; ledcol++) { digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol) ); } patbufidx++; } digitalWrite( PlanePin[plane], LOW ); delayMicroseconds( PLANETIME ); } } } while (DisplayTime > 0); }
When uploading the code, remember to select the Board Arduino Uno.
After program is uploaded, with power on, you can see the beautiful light effect.
Resources for the project
ARTDUINO software download address:
https://www.arduino.cc/en/Main/Software
Project code address:
http://www.instructables.com/id/4x4x4-LED-Cube-Arduino-Uno/
http://www.instructables.com/id/The-4x4x4-LED-cube-Arduino/
http://www.makeuseof.com/tag/how-to-make-a-pulsating-arduino-led-cube-that-looks-like-it-came-from-the-future/
Video address:
http://video.keyestudio.com/KS0182/
PDF:
https://fs.keyestudio.com/KS0182
Buy from
- Amazon
https://www.amazon.com/Keyestudio-light-Arduino-Diffuse-Light/dp/B01K1UKI46/