// //******************************************
// // USE write() in replace to digitalWrite()
// // The diagram uses 16x16 matrix. Note that the 16th adress will not work
// // This will work with 15x15 boards
// //******************************************
#include "MUX_iParol.h"
//Create your array below
byte midMagenta [] = {113};
byte midColors [] = {112, 98 , 114, 128};
byte midOrange [] = {82, 83, 84, 96, 97, 99, 100, 111, 115, 126, 127, 129, 130, 142, 143, 144 };
byte midGreen [] = {68, 81, 85, 110, 116, 141, 145, 158};
byte pinkBlue [] = {52, 53, 54, 66, 67, 69, 70, 80, 86, 94, 95, 101, 102, 109, 117, 124, 125, 131, 132, 140, 146, 156, 157, 159, 160, 172, 173, 174 };
byte sideRed [] = {8, 106, 120, 218 };
byte secondRed [] = {6, 7, 9, 10, 76, 91, 121, 136, 90, 105, 135, 150, 216, 217, 219, 220};
byte lastRed [] = {4, 5, 11, 12, 46, 61, 151, 166, 214, 215, 221, 222, 60, 75, 165, 180};
byte tripleColors [] = {31, 181, 213, 223, 3, 13, 45, 195, 37, 38, 39, 93, 108, 123, 103, 118, 133, 187, 188, 189, 50, 51, 64, 65, 79, 139, 154, 155, 170, 171, 53, 173, 55, 56, 71, 72, 87, 147, 161, 162, 175, 176, 117, 109};
byte yellowOrange [] = {49, 57, 169, 177, 78, 138, 36, 40, 88, 148, 186, 190};
byte purple [] = {19, 20, 21, 34, 35, 47, 48, 62, 63, 77, 137, 152, 153, 167, 168, 184, 185, 199, 200, 201, 25, 26, 27, 41, 42, 58, 59, 73, 74, 89, 149, 163, 164, 178, 179, 191, 192, 205, 206, 207 };
byte secondTriple [] = {33, 22, 23, 24, 43, 92, 107, 122, 183, 202, 203, 204, 193, 104, 119, 134, };
byte tripleSide [] = {17, 18, 32, 28, 29, 44, 182, 197, 198, 194, 208, 209};
byte lastCorner [] = {1, 2, 15, 14, 16, 30, 196, 211, 212, 210, 224, 225 };
byte offMiddle [] = {113, 112, 98, 114, 128};
byte offSecond [] = {83, 97, 99, 111, 127, 143, 129, 115};
byte thirdy [] = {81, 82, 96, 126, 142, 141, 130, 144, 145, 84, 85, 100, 95, 67, 69, 101, 131, 159, 157, 125, 109, 53, 117, 173, 68, 110, 158, 116};
byte fourSide [] = {106, 8, 120, 218};
byte sides [] = {76, 91, 106, 121, 136, 92, 107, 122, 108, 109, 6, 7, 8, 9, 10, 22, 23, 24, 38, 53, 216, 271, 218, 219, 220, 202, 203, 204, 188, 173, 90, 105, 120, 135, 150, 104, 119, 134, 117, 118, 217, 80, 66, 140, 156, 146, 160, 70, 86};
byte listOne[] = {98,112,114,128};
byte listTwo[] = {82,83,84,96,97,99,100,111,115,126,127,129,130,142,143,144};
byte listThree[] = {53,67,68,69,81,85,95,101,109,110,116,117,125,131,141,145,157,158,159,173};
byte listFour[] = {23,37,38,39,51,65,79,52,66,80,94,55,71,87,54,70,86,102,109, 93,107,108,123,124,140,156,172,139,155,171,103,118,119,133,147,161,175,132,146,160,174,187,188,189,203};
byte listFive[] = {7,8,9,21,22,23,24,25,35,36,40,41,49,50,56,57,63,64,72,73,77,78,88,89,91,92,104,105,106,120,121,122,134,135,137,138,153,154,169,170,185,186,201,202,217,218,148,149,162,163,176,177,190,191,204,205,219};
byte listSix[] = {5,6,19,20,33,34,47,48,61,62,76,10,11,26,27,42,43,58,59,74,75,90,136,151,152,167,168,183,184,199,200, 215 ,216, 150, 165, 164, 179, 178, 193, 192, 207,206, 221, 220};
byte listSeven[] = {3,4,17,18,31,32,46,12,13,28,29,44,45,60,166,181, 182,197,198,213,214,180,194,195,208,209,222,
223};
byte listEight[] = {1,2,16,14,15,30,210,225,224,196,211,212};
byte listDisolve1[] = {7,8,9,23,217,218,219,203};
byte listDisolve2[] = {6,10,22,24,38,188,202,204,216,220};
void setup() {
//You don't need to write anything here
iParol_Init();
}
void loop() {
//Call your user-defined functions here
firstLight();
lightMid();
thirdLight();
fourthLight();
fifthLight();
sideLight ();
secondSide ();
lastSide ();
lightTriple ();
lightYellor();
lightPurple();
lightSecond ();
sideTriple();
lastTs();
firstOff();
secondOff();
thirdOff();
fourthOff();
fifthOff();
layerOne();
layerTwo();
layerThree();
layerFour();
layerFive();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix();
layerFive();
layerFour();
layerThree();
layerTwo();
layerOne2();
layerTwo();
layerThree();
layerFour();
layerFive();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix();
layerFive();
layerFour();
layerThree();
layerTwo2();
layerThree();
layerFour();
layerFive();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix();
layerFive();
layerFour();
layerThree2();
layerFour();
layerFive();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix();
layerFive();
layerFour2();
layerFive();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix();
layerFive2();
layerSix();
layerSeven();
layerEight();
layerSeven();
layerSix2();
layerSeven();
layerEight();
layerSeven2();
layerEight2();
secondDis1();
secondDis2();
}
//Create your own user-defined funtions here
void firstLight() {
for (int i=113; i<=113; i++){
write(i , HIGH);
}
delay(200);
}
void offFirst(){
for (int i=113; i<= 113; i++ ){
write(i , LOW);
}
delay(400);
}
void lightMid() {
for (int i=0; i<=3; i++){
write(midColors[i], HIGH);
}
delay(200);
}
void offMid() {
for (int i=0; i<=3; i++){
write(midColors[i], LOW);
}
delay(400);
}
void thirdLight() {
for (int i=0; i<=15; i++){
write (midOrange[i], HIGH);
}
delay(200);
}
void offThird() {
for (int i=0; i<=15; i++){
write(midOrange[i], LOW);
}
delay(1000);
}
void fourthLight() {
for (int i=0; i<=7; i++){
write(midGreen[i], HIGH);
}
delay(200);
}
void offFourth() {
for (int i=0; i<=7; i++){
write(midGreen[i], LOW);
}
delay(300);
}
void fifthLight() {
for (int i=0; i<=27; i++){
write(pinkBlue[i], HIGH);
}
delay(200);
}
void offFifth() {
for (int i=0; i<=27; i++){
write(pinkBlue[i], LOW);
}
delay(300);
}
void sideLight() {
for (int i=0; i<=3; i++){
write(sideRed[i], HIGH);
}
delay(200);
}
void secondSide() {
for (int i=0; i<=15; i++){
write(secondRed[i], HIGH);
}
delay(200);
}
void lastSide() {
for (int i=0; i<=15; i++){
write(lastRed[i], HIGH);
}
delay(200);
}
void lightTriple() {
for (int i=0; i<=41; i++){
write(tripleColors[i], HIGH);
}
delay(200);
}
void lightYellor() {
for (int i=0; i<=11; i++){
write(yellowOrange[i], HIGH);
}
delay(200);
}
void lightPurple(){
for (int i=0; i<=39; i++){
write(purple[i], HIGH);
}
delay(200);
}
void lightSecond(){
for (int i=0; i<=15; i++){
write(secondTriple[i], HIGH);
}
delay(200);
}
void sideTriple(){
for (int i=0; i<=11; i++){
write(tripleSide[i], HIGH);
}
delay(200);
}
void lastTs(){
for(int i=0; i<=11; i++){
write(lastCorner[i], HIGH);
}
delay(200);
}
void firstOff(){
for(int i=0; i<=4; i++){
write(offMiddle[i], LOW);
}
delay(1000);
}
void secondOff() {
for (int i=0; i<=7; i++){
write(offSecond[i], LOW);
}
delay(1000);
}
void thirdOff() {
for (int i=0; i<=27; i++){
write(thirdy[i], LOW);
}
delay(1000);
}
void fourthOff() {
for (int i=0; i<=3; i++){
write(fourSide[i], LOW);
}
delay(1000);
}
void fifthOff() {
for(int i=0; i<=48; i++){
write(sides[i], LOW);
}
delay(1000);
}
void layerOne(){
for(int i=0; i<=3; i++){
write(listOne[i],HIGH);
}
delay(400);
for(int i=0; i<=3; i++){
write(listOne[i],LOW);
}
}
void layerTwo(){
for(int i=0; i<=15; i++){
write(listTwo[i], HIGH);
}
delay(400);
for(int i=0; i<=15; i++){
write(listTwo[i], LOW);
}
}
void layerThree(){
for(int i=0; i<=19; i++){
write(listThree[i],HIGH);
}
delay(400);
for(int i=0; i<=19; i++){
write(listThree[i],LOW);
}
}
void layerFour(){
for(int i=0; i<=44; i++){
write(listFour[i], HIGH);
}
delay(400);
for(int i=0; i<=44 ; i++){
write(listFour[i], LOW);
}
}
void layerFive(){
for(int i=0; i<=56; i++){
write(listFive[i], HIGH);
}
delay(400);
for(int i=0; i<=56; i++){
write(listFive[i], LOW);
}
}
void layerSix(){
for(int i=0;i<=43; i++){
write(listSix[i], HIGH);
}
delay(400);
for(int i=0;i<=43; i++){
write(listSix[i], LOW);
}
}
void layerSeven(){
for(int i=0; i<=27; i++){
write(listSeven[i], HIGH);
}
delay(400);
for(int i=0; i<=27; i++){
write (listSeven[i],LOW);
}
}
void layerEight(){
for(int i=0; i<=11; i++){
write(listEight[i],HIGH);
}
delay(400);
for(int i=0; i<=11; i++){
write(listEight[i],LOW);
}
}
void layerOne2(){
for(int i=0; i<=3; i++){
write(listOne[i],HIGH);
}
delay(400);
}
void layerTwo2(){
for(int i=0; i<=15; i++){
write(listTwo[i], HIGH);
}
delay(400);
}
void layerThree2(){
for(int i=0; i<=19; i++){
write(listThree[i],HIGH);
}
delay(400);
}
void layerFour2(){
for(int i=0; i<=44; i++){
write(listFour[i], HIGH);
}
delay(400);
}
void layerFive2(){
for(int i=0; i<=56; i++){
write(listFive[i], HIGH);
}
delay(400);
}
void layerSix2(){
for(int i=0;i<=43; i++){
write(listSix[i], HIGH);
}
}
void layerSeven2(){
for(int i=0; i<=27; i++){
write(listSeven[i], HIGH);
}
delay(400);
}
void layerEight2(){
for(int i=0; i<=11; i++){
write(listEight[i],HIGH);
}
delay(400);
}
void secondDis1(){
for(int i=0; i<=7; i++){
write(listDisolve1[i],LOW);
}
delay(400);
}
void secondDis2(){
for(int i=0; i<=9; i++){
write(listDisolve2[i], LOW);
}
}