Got my LED cube build today :D! This code I made as a test:
I used for() loops as delay between the columns as well for making the led columns run at their full brightness.
int layer1 = 11;
int layer2 = 12;
int layer3 = 13;
int led1 = 10;
int led2 = 9;
int led3 = 8;
int led4 = 7;
int led5 = 6;
int led6 = 5;
int led7 = 4;
int led8 = 3;
int led9 = 2;
int r = 1;
void setup()
{
pinMode(layer1, OUTPUT);
pinMode(layer2, OUTPUT);
pinMode(layer3, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
}
void loop()
{
while(r<=5){
digitalWrite (layer1, LOW);
digitalWrite (layer2, LOW);
digitalWrite (layer3, LOW);
digitalWrite (led5, HIGH);
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led1, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led1, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led2, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led2, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led3, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led3, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led6, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led6, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led9, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led9, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led8, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led8, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led7, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led7, LOW);
}
for(int i = 0; i <= 15;i++){
digitalWrite (layer1, HIGH);
digitalWrite (led4, HIGH);
delay(1);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(1);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(1);
digitalWrite (layer3, LOW);
digitalWrite (led4, LOW);
}
digitalWrite (led5, LOW);
digitalWrite (layer1, LOW);
digitalWrite (layer2, LOW);
digitalWrite (layer3, LOW); // RESET all layers to OFF
r = r++;
}
r = 1;
while (r<=10){
digitalWrite (layer1, HIGH);
digitalWrite (led1, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led7, HIGH);
digitalWrite (led9, HIGH);
delay(75);
digitalWrite (layer1, LOW);
digitalWrite (layer2, HIGH);
delay(75);
digitalWrite (layer2, LOW);
digitalWrite (layer3, HIGH);
delay(75);
digitalWrite (led1, LOW);
digitalWrite (led3, LOW);
digitalWrite (led7, LOW);
digitalWrite (led9, LOW);
delay(75);
digitalWrite (led2, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led6, HIGH);
digitalWrite (led8, HIGH);
delay(75);
digitalWrite (layer3, LOW);
digitalWrite (layer2, HIGH);
delay(75);
digitalWrite (layer2, LOW);
digitalWrite (layer1, HIGH);
delay(75);
digitalWrite (led2, LOW);
digitalWrite (led4, LOW);
digitalWrite (led6, LOW);
digitalWrite (led8, LOW);
r = r++;
}
r=1;
}
Here a video :): - YouTube
If anyone has some tips what I could do better on my code, feel free to let me know :).