⌁ ⌁⌁⌁ ⌁⌁ ⌁ ⌁⌁ ⌁⌁⌁ ⌁Led Cube 3X3X3 ⌁⌁⌁ ⌁⌁⌁ ⌁⌁⌁ ⌁⌁ ⌁ ⌁ ⌁
electronic parts:
✏27 led ✏Arduino UNO ✏Soldering iron
✏9 Resistor 220 ohm ✏Jumper wires
Connect the project like this :
Working on a single sheet of 9 LEDs, we connect the negative poles together.
Then we work on the second and third plate.
We have one final step left, which is to form a cube out of the three plates. Then we solder the positive poles together but from top to bottom.
Finally we get a cube in it 9 pin of Positive and 3 pin Negative , Now we are soldering the positive electrodes with the resistance
Connection with Arduino :
Just as it can be seen in the second picture Negative pin in(PIN=A0,A1,A2) As for the negative pin in(PIN=2,3,4,5,6,7,8,9,1,0)
Programming:
At the beginning of the program we define pin leds that show us a square in this order:(PIN2,PIN3,PIN4,PIN7,PIN10,PIN9,PIN8,PIN5,PIN2)
//sqr =Just coding for clarification only
int sqr[9]={2,3,4,7,10,9,8,5,2};
Then we define the outputs for the project :
void setup()
{
for (int i=2;i<11;i++)
{
pinMode(i,OUTPUT); // PINS2-10 are set as output
}
for (int j=0;j<9;j++)
{
pinMode(sqr[j],OUTPUT); // PINS0-9 are set as output of square
}
pinMode(A0,OUTPUT); //PIN A0 set as output
pinMode(A1,OUTPUT); // PIN A1 set as output
pinMode(A2,OUTPUT); // PIN A2 set as output
digitalWrite(A0,HIGH); //pull up the A0 pin
digitalWrite(A1,HIGH); // pull up the A1 pin
digitalWrite(A2,HIGH); // pull up the A2 pin
}
10 cases for operation :
case 1 and2:Random movement to start and stop the LEDs according to the order of the pin From the first plate at the bottom to the third plate at the top. and Case 2 is the same way from plate three to plate.
// CASE 1 A=================================================
for (int i=2;i<11;i++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(i,HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
//B==================================================================
for (int i=2;i<11;i++)
{
digitalWrite(A1,LOW); // layer 2 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer2
delay(100);
}
digitalWrite(A1,HIGH); // layer2 is pulled up
//C======================================================
for (int i=2;i<11;i++)
{
digitalWrite(A2,LOW); // layer 3 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer3
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A2,HIGH); // layer3 is pulled up
//CASE2D==============================================
for (int i=10;i>1;i-- )
{
digitalWrite(A2,LOW); // layer 3 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer3
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A2,HIGH); // layer3 is pulled up
//E=============================================================
for (int i=10;i>1;i-- )
{
digitalWrite(A1,LOW); // layer 2 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer2
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A1,HIGH); // layer2 is pulled up
//F============================================================================
for (int i=10;i>1;i-- )
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(i,HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
At this stage, LEDs operate in the form of a square, as we mentioned at the beginning of the code, to use writing sqr .
Leds work according to the written expression, except for LED No. 6, it does not work.
//CASE3 G ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
// H ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A1,HIGH); //layer2 is pulled up
// I ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A2,HIGH); //layer3 is pulled up
//CASE4 J ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A2,HIGH); //layer3 is pulled up
// K======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A1,HIGH); //layer2 is pulled up
// L ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
case 5 and6:
All LEDs operate on the first plate, then turn off to operate the second and third
In the sixth stage, the inverting operation of the LEDs is the third plate.
//CASE 5 G1 ======================================================================================
for (int z=1;z<11;z++)
{
for (int j=0;j<9;j++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(10);
}
digitalWrite(A0,HIGH);
// H1 ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(10);
}
digitalWrite(A1,HIGH);
// I1 ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(10);
}
digitalWrite(A2,HIGH);
//CASE 6 J1 ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(10);
}
digitalWrite(A2,HIGH);
// K1======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(10);
}
digitalWrite(A1,HIGH);
// L1 ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(10);
}
digitalWrite(A0,HIGH);
}
case 7 and8:
This time, we are taking a different shape to draw it on the project, which is a circle on the middle plate. Once clockwise and a second time opposite.
//CASE 7 M ====================================================================================== for (int k=1;k<5;k++) // Repeat the process 5 times { digitalWrite(A1,LOW); digitalWrite(6,HIGH); for (int j=0;j<8;j++) { if (j<5) { digitalWrite(sqr[j],HIGH); digitalWrite(sqr[j+4],HIGH); delay(50); digitalWrite(sqr[j],LOW); digitalWrite(sqr[j+4],LOW); } else if(j>8) { digitalWrite(sqr[j],HIGH); digitalWrite(sqr[j-4],HIGH); delay(50); digitalWrite(sqr[j],LOW); digitalWrite(sqr[j-4],LOW); } } } //CASE 8 M1 ====================================================================================== for (int k=1;k<5;k++) { digitalWrite(A1,LOW); digitalWrite(6,HIGH); for (int j=7;j>=0;j--) { if (j<5) { digitalWrite(sqr[j],HIGH); digitalWrite(sqr[j+4],HIGH); delay(50); digitalWrite(sqr[j],LOW); digitalWrite(sqr[j+4],LOW); } else if(j>8) { digitalWrite(sqr[j],HIGH); digitalWrite(sqr[j-4],HIGH); delay(50); digitalWrite(sqr[j],LOW); digitalWrite(sqr[j-4],LOW); } } }
case 9 and10:
In this last stage of the project, the three plates are being turned simultaneously in the form of a cylinder once clockwise and once opposite.
//CASE 9 M2 ======================================================================================
for (int k=1;k<10;k++) //Repeat the process 9 times
{
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(6,HIGH);
for (int j=0;j<8;j++)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
//CASE 10 M3======================================================================================
for (int k=1;k<10;k++)
{
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(6,HIGH);
for (int j=7;j>=0;j--)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
digitalWrite(A0,HIGH);
digitalWrite(A1,HIGH);
digitalWrite(A2,HIGH);
digitalWrite(6,LOW);
So you have finished this latest project of leds projects .
Full Code:
//sqr =Just coding for clarification only
int sqr[9]={2,3,4,7,10,9,8,5,2};
void setup()
{
for (int i=2;i<11;i++)
{
pinMode(i,OUTPUT); // PINS2-10 are set as output
}
for (int j=0;j<9;j++)
{
pinMode(sqr[j],OUTPUT); // PINS0-9 are set as output of square
}
pinMode(A0,OUTPUT); //PIN A0 set as output
pinMode(A1,OUTPUT); // PIN A1 set as output
pinMode(A2,OUTPUT); // PIN A2 set as output
digitalWrite(A0,HIGH); //pull up the A0 pin
digitalWrite(A1,HIGH); // pull up the A1 pin
digitalWrite(A2,HIGH); // pull up the A2 pin
}
void loop()
{
// CASE 1 A=================================================
for (int i=2;i<11;i++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(i,HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
//B==================================================================
for (int i=2;i<11;i++)
{
digitalWrite(A1,LOW); // layer 2 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer2
delay(100);
}
digitalWrite(A1,HIGH); // layer2 is pulled up
//C======================================================
for (int i=2;i<11;i++)
{
digitalWrite(A2,LOW); // layer 3 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer3
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A2,HIGH); // layer3 is pulled up
//CASE 2D=================================================
for (int i=10;i>1;i-- )
{
digitalWrite(A2,LOW); // layer 3 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer3
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A2,HIGH); // layer3 is pulled up
//E==================================================================
for (int i=10;i>1;i-- )
{
digitalWrite(A1,LOW); // layer 2 of cube is grounded
digitalWrite(i,HIGH); // turn ON each LED one after another in layer2
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A1,HIGH); // layer2 is pulled up
//F======================================================================================
for (int i=10;i>1;i-- )
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(i,HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(i,LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
//CASE3 G ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
// H ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A1,HIGH); //layer2 is pulled up
// I ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A2,HIGH); //layer3 is pulled up
//CASE4 J ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A2,HIGH); //layer3 is pulled up
// K======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A1,HIGH); //layer2 is pulled up
// L ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(100);
digitalWrite(sqr[j],LOW);
}
digitalWrite(A0,HIGH); //layer1 is pulled up
//CASE 5 G1 ======================================================================================
for (int z=1;z<11;z++)
{
for (int j=0;j<9;j++)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(10);
}
digitalWrite(A0,HIGH);
// H1 ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(10);
}
digitalWrite(A1,HIGH);
// I1 ======================================================================================
for (int j=0;j<9;j++)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(10);
}
digitalWrite(A2,HIGH);
//CASE 6 J1 ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A2,LOW); //layer 3 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer3
delay(10);
}
digitalWrite(A2,HIGH);
// K1======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A1,LOW); //layer 2 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer2
delay(10);
}
digitalWrite(A1,HIGH);
// L1 ======================================================================================
for (int j=8;j>=0;j--)
{
digitalWrite(A0,LOW); //layer 1 of cube is grounded
digitalWrite(sqr[j],HIGH); //turn ON each LED one after another in layer1
delay(10);
}
digitalWrite(A0,HIGH);
}
//CASE 7 M ======================================================================================
for (int k=1;k<5;k++) // Repeat the process 5 times
{
digitalWrite(A1,LOW);
digitalWrite(6,HIGH);
for (int j=0;j<8;j++)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
//CASE 8 M1 ======================================================================================
for (int k=1;k<5;k++)
{
digitalWrite(A1,LOW);
digitalWrite(6,HIGH);
for (int j=7;j>=0;j--)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
//CASE 9 M2 ======================================================================================
for (int k=1;k<10;k++) //Repeat the process 9 times
{
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(6,HIGH);
for (int j=0;j<8;j++)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
//CASE 10 M3======================================================================================
for (int k=1;k<10;k++)
{
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(6,HIGH);
for (int j=7;j>=0;j--)
{
if (j<5)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j+4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j+4],LOW);
}
else
if(j>8)
{
digitalWrite(sqr[j],HIGH);
digitalWrite(sqr[j-4],HIGH);
delay(50);
digitalWrite(sqr[j],LOW);
digitalWrite(sqr[j-4],LOW);
}
}
}
digitalWrite(A0,HIGH);
digitalWrite(A1,HIGH);
digitalWrite(A2,HIGH);
digitalWrite(6,LOW);
}
You can follow the entire project in this video:
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
No comments