# 3X3X3 Led Cube Homework Using Arduino Uno

#### MERT CAN YAMAN

Joined Oct 25, 2017
4
Hello my dear friends, I have to make 3x3x3 led cube for my homework on which each led have to be blinking respectively at first, and then each surface will respectively be lighted up and finally the cube will completely be lighted up. I've made its simulation on Proteus 8 and already written its code on Arduino IDE,however, I've encountered a tedious problem which takes my hours. I've only succeeded the respectively blinking and to light up top-bottom surfaces ,but I can't light up the side surfaces and also entire cube although I've tried many different code variations. I will be so glad if you help me, I have to make this homework to pass this lesson. Thanks in advance.

My proteus drawing and arduino code are in the attachment. In that of the proteus, each leds inside of a square represent a layer of the cube.

#### Attachments

• 20.5 KB Views: 17

#### dl324

Joined Mar 30, 2015
16,913
Welcome to AAC!

Post your schematic and describe what the program attempts to do.

I'm not going to open the .rar file.

#### shteii01

Joined Feb 19, 2010
4,644

#### WBahn

Joined Mar 31, 2012
30,048
I would recommend setting up your code so that you have a bit field in which each bit is mapped to one of the LEDs. You need 27 bits, so a 32-bit integer is more than enough.

Have one part of your code turn on the LEDs based on the values in that integer.

Now the rest of your code is a simple matter of constructing the value to be stored in that integer. A pretty easy way to do that is to build a function that takes the x,y,z positions of the LED within the cube as well as a boolean that says whether you want it on or off and then bit bangs that integer to set/clear the appropriate bit.

#### absf

Joined Dec 29, 2010
1,968
Is this the schematic?

You drew this circuit using A0 paper and I tried to reduce it down to A2 size. Then I resized it down again by 50%

Allen

#### MERT CAN YAMAN

Joined Oct 25, 2017
4
Is this the schematic?
View attachment 141422
You drew this circuit using A0 paper and I tried to reduce it down to A2 size. Then I resized it down again by 50%

Allen
Yes, this is. It looks great. I drew it so sloppy as you saw. Thank you so much for your support, you are really a good person. Do you have any idea about my code ?

#### dl324

Joined Mar 30, 2015
16,913
I drew it so sloppy as you saw.
You only get one chance to make a good first impression. You wasted yours.

Explain what you want your code to do and what it's actually doing.

#### MERT CAN YAMAN

Joined Oct 25, 2017
4
You only get one chance to make a good first impression. You wasted yours.

Explain what you want your code to do and what it's actually doing.
I have first time used proteus for a simulation, I've learnt a short and great way about how to draw easily thanks to my helpful friend absf, and also I've realized that i drew it so sloppy. I expressed my gratitude to him saying thank you so much. He fixed the complexity of the circuit and now I've been asking how i can fix my mistakes on the code. As I expressed it before, I couldn't light up both the sides of cubes and all leds with my code. I am so sorry if there is a misunderstanding here.

Last edited:

#### nerdegutta

Joined Dec 15, 2009
2,684
Hi.

Not many people will open up source code... I boldly took the chance to copy your code in to this post, using the CODE - tag.

Code:
int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int Filas[] = {10,11,12};

void setup(){
}
void loop(){
int sayac;
// These following codes are for respectively blinking //
digitalWrite(Filas[0], HIGH);
for(sayac=0;sayac<9;sayac++){
digitalWrite(Columnas[sayac], HIGH);
delay(1000);
digitalWrite(Columnas[sayac], LOW);
}
digitalWrite(Filas[0], LOW);
digitalWrite(Filas[1], HIGH);
for(sayac=0;sayac<9;sayac++){
digitalWrite(Columnas[sayac], HIGH);
delay(1000);
digitalWrite(Columnas[sayac], LOW);
}
digitalWrite(Filas[1], LOW);
digitalWrite(Filas[2], HIGH);
for(sayac=0;sayac<9;sayac++){
digitalWrite(Columnas[sayac], HIGH);
delay(1000);
digitalWrite(Columnas[sayac], LOW);
}
digitalWrite(Filas[2], LOW);
digitalWrite(Filas[0], HIGH); // On the left, It is for the bottom surface.  //
for(sayac=0;sayac<9;sayac++){
digitalWrite(Columnas[sayac], HIGH);
}
delay(3000);
digitalWrite(Filas[0], LOW);

// these followings are for sides //
digitalWrite(Columnas[0],HIGH);
digitalWrite(Columnas[1],HIGH);
digitalWrite(Columnas[2], HIGH);
delay(3000);
digitalWrite(Columnas[0],LOW);
digitalWrite(Columnas[1],LOW);
digitalWrite(Columnas[2], LOW);

digitalWrite(Columnas[6],HIGH);
digitalWrite(Columnas[7],HIGH);
digitalWrite(Columnas[8], HIGH);
delay(3000);
digitalWrite(Columnas[6],LOW);
digitalWrite(Columnas[7],LOW);
digitalWrite(Columnas[8], LOW);

digitalWrite(Columnas[0],HIGH);
digitalWrite(Columnas[3],HIGH);
digitalWrite(Columnas[6], HIGH);
delay(3000);
digitalWrite(Columnas[0],LOW);
digitalWrite(Columnas[3],LOW);
digitalWrite(Columnas[6], LOW);

digitalWrite(Columnas[2],HIGH);
digitalWrite(Columnas[5],HIGH);
digitalWrite(Columnas[8], HIGH);
delay(3000);
digitalWrite(Columnas[2], LOW);
digitalWrite(Columnas[5], LOW);
digitalWrite(Columnas[8], LOW);

digitalWrite(Filas[2], HIGH); //on the left, Its for the top surface //
for(sayac=0;sayac<9;sayac++){
digitalWrite(Columnas[sayac], HIGH);
}
delay(3000);
digitalWrite(Filas[2], LOW);

digitalWrite(Filas[0], HIGH); //entire cube //
digitalWrite(Filas[1], HIGH);
digitalWrite(Filas[2], HIGH);
delay(8000);
digitalWrite(Filas[0], LOW);
digitalWrite(Filas[1], LOW);
digitalWrite(Filas[2], LOW);

for(;;);

}

#### WBahn

Joined Mar 31, 2012
30,048
It would be very nice if the code was reasonably and consistently formatted.

It would also be nice to have the definition of this 'digitalWrite()' function that is called so often.

#### MERT CAN YAMAN

Joined Oct 25, 2017
4
Thank you so much, nerdegutta. I am new here, I didn't know how i could post correctly depending on forum rules, but it won't be like that next time.

#### be80be

Joined Jul 5, 2008
2,072
digitalWrite Is like PORTA.0 = 1 or 0 You use HIGH or LOW with it.

There kind of cool i made this 8 years ago

Last edited: