Hi all,
I've build a 3x3x3 led cube with the multiplexing technique so i only have 13 pins to control it. So far so good.
I use the next code to scroll the horizontal rows up and down (i don't know how to explain is clearly)
// Scripted by Stealth0113 (stealthaerox@gmail.com)
//declare the pins for the 3x3x3 Ledcube
int colpins[] = {29,30,31,32,33,34,35,36,37}; //ColumnPins
int lvlpins[] = {11,12,13}; //LevelPins
int count;
void setup() {
for (count=0;count<9;count++) {
pinMode(colpins[count], OUTPUT); // Set al the columns as output
digitalWrite(colpins[count], LOW);} //ensure that they are low
for (count=0;count<4;count++) {
pinMode(lvlpins[count], OUTPUT); // Set al the levels as output
digitalWrite(lvlpins[count], LOW);} //ensure that they are low
}
void loop() {
for (int i=0; i<10; i++){
digitalWrite(11, HIGH);
digitalWrite(29, HIGH);
digitalWrite(30, HIGH);
digitalWrite(31, HIGH);
delay(5);
digitalWrite(11, LOW);
digitalWrite(29, LOW);
digitalWrite(30, LOW);
digitalWrite(31, LOW);
digitalWrite(13, HIGH);
digitalWrite(35, HIGH);
digitalWrite(36, HIGH);
digitalWrite(37, HIGH);
delay(5);
digitalWrite(13, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
delay(5);
}
for (int i=0; i<10; i++){
digitalWrite(11, HIGH);
digitalWrite(13, HIGH);
digitalWrite(32, HIGH);
digitalWrite(33, HIGH);
digitalWrite(34, HIGH);
delay(5);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
delay(5);
}
for (int i=0; i<10; i++){
digitalWrite(13, HIGH);
digitalWrite(29, HIGH);
digitalWrite(30, HIGH);
digitalWrite(31, HIGH);
delay(5);
digitalWrite(13, LOW);
digitalWrite(29, LOW);
digitalWrite(30, LOW);
digitalWrite(31, LOW);
digitalWrite(11, HIGH);
digitalWrite(35, HIGH);
digitalWrite(36, HIGH);
digitalWrite(37, HIGH);
delay(5);
digitalWrite(11, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
delay(5);
}
for (int i=0; i<10; i++){
digitalWrite(12, HIGH);
digitalWrite(29, HIGH);
digitalWrite(30, HIGH);
digitalWrite(31, HIGH);
digitalWrite(35, HIGH);
digitalWrite(36, HIGH);
digitalWrite(37, HIGH);
delay(5);
digitalWrite(12, LOW);
digitalWrite(29, LOW);
digitalWrite(30, LOW);
digitalWrite(31, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
delay(5);
}
}
As you can see the code is not very short for such a simple thing. I've seen that some people use hex or binary code's to control leds on rotating led strips. I think this is the best way to manage the leds on my cube, but i don't know how to apply it on my cube.