#define X1Y1 8 #define X2Y1 7 #define X3Y1 6 #define X1Y2 5 #define X2Y2 4 #define X3Y2 3 #define X1Y3 2 #define X2Y3 1 #define X3Y3 0 #define Z1 9 #define Z2 10 #define Z3 11 void setup() { pinMode(X1Y1,OUTPUT); pinMode(X2Y1,OUTPUT); pinMode(X3Y1,OUTPUT); pinMode(X1Y2,OUTPUT); pinMode(X2Y2,OUTPUT); pinMode(X3Y2,OUTPUT); pinMode(X1Y3,OUTPUT); pinMode(X2Y3,OUTPUT); pinMode(X3Y3,OUTPUT); pinMode(Z1,OUTPUT); pinMode(Z2,OUTPUT); pinMode(Z3,OUTPUT); digitalWrite(X1Y1,0); digitalWrite(X2Y1,0); digitalWrite(X3Y1,0); digitalWrite(X1Y2,0); digitalWrite(X2Y2,0); digitalWrite(X3Y2,0); digitalWrite(X1Y3,0); digitalWrite(X2Y3,0); digitalWrite(X3Y3,0); digitalWrite(Z1,1); digitalWrite(Z2,1); digitalWrite(Z3,1); } void loop() { ledRandom(); //makes the leds flash randomly ledSeq(); //makes the leds flash in a sequence ledWrite(1,2,3,1); // (x coord, y coord, z coord, on=1 / off=0) } void ledSeq() { for(int x = 1; x < 4; x++) { for(int y = 1; y < 4; y++) { for(int z = 1; z < 4; z++) { ledWrite(x,y,z,1); delay(50); } } } } void ledRandom() { int x1 = random(1,4); int y1 = random(1,4); int z1 = random(1,4); int x2 = random(1,4); int y2 = random(1,4); int z2 = random(1,4); int x3 = random(1,4); int y3 = random(1,4); int z3 = random(1,4); for(int x = 0; x < random(10,500); x++) { ledWrite(x1,y1,z1,1); ledWrite(x1,y3,z2,1); ledWrite(x2,y2,z2,1); ledWrite(x3,y3,z3,1); ledWrite(x1,y2,z3,1); ledWrite(x3,y2,z1,1); ledWrite(x2,y2,z3,1); } } void ledWrite(int X, int Y, int Z, int K) { digitalWrite(X1Y1,0); digitalWrite(X2Y1,0); digitalWrite(X3Y1,0); digitalWrite(X1Y2,0); digitalWrite(X2Y2,0); digitalWrite(X3Y2,0); digitalWrite(X1Y3,0); digitalWrite(X2Y3,0); digitalWrite(X3Y3,0); digitalWrite(Z1,1); digitalWrite(Z2,1); digitalWrite(Z3,1); switch (X) { case 1: { switch(Y) { case 1: digitalWrite(X1Y1,K); break; case 2: digitalWrite(X1Y2,K); break; case 3: digitalWrite(X1Y3,K); break; } } break; case 2: { switch(Y) { case 1: digitalWrite(X2Y1,K); break; case 2: digitalWrite(X2Y2,K); break; case 3: digitalWrite(X2Y3,K); break; } } break; case 3: { switch(Y) { case 1: digitalWrite(X3Y1,K); break; case 2: digitalWrite(X3Y2,K); break; case 3: digitalWrite(X3Y3,K); break; } } break; } switch(Z) { case 1: digitalWrite(Z1,0); break; case 2: digitalWrite(Z2,0); break; case 3: digitalWrite(Z3,0); break; } delayMicroseconds(500); return; }