int columns[] = {2,3,4,5,6,7,8,9,10}; //initializing all column pins int layers[] = {A0,A1,A2}; //initializing all layer pins void setup() { for(int i = 0; i < (sizeof(columns)/sizeof(int)); i++) { pinMode(columns[i],OUTPUT); // initializing all column pins as ouput } for (int i = 0; i < (sizeof(layers)/sizeof(int)); i++) { pinMode(layers[i],OUTPUT); // initializing all layer pins as ouput } TurnAllOff(); // turning all LEDs off } void loop() { TurnAllOn(); //Lights whole Cube delay(2000); //waits for 2s OneByOne(); //Lights each LED individually one after the other } void TurnAllOn (){ for (int i = 0; i < (sizeof(layers)/sizeof(int)); i++) { digitalWrite(layers[i],LOW); // pulling all layers low } for (int i = 0; i < (sizeof(columns)/sizeof(int)); i++) { digitalWrite(columns[i],HIGH); // pulling all columns high } } void TurnAllOff (){ for (int i = 0; i < (sizeof(columns)/sizeof(int)); i++) { digitalWrite(columns[i],LOW); for (int i = 0; i < (sizeof(layers)/sizeof(int)); i++) { digitalWrite(layers[i],HIGH); } } } void OneByOne (){ int delayTime =1000; TurnAllOff(); for (int i = 0; i < (sizeof(layers)/sizeof(int)); i++) { digitalWrite(layers[i],LOW); // pulling a layer low for (int i = 0; i < (sizeof(columns)/sizeof(int)); i++) { digitalWrite(columns[i],HIGH); delay(delayTime);// pulling all columns high digitalWrite(columns[i],LOW); } digitalWrite(layers[i],HIGH); // pulling a layer high } TurnAllOff(); }