const int row[8] = { 2,3,4,5,6,7,8,9 }; const int col[8] = { 10,11,12,13,14,15,16,17 }; void setup() { // initialize the I/O pins as outputs: // iterate over the pins: for (int thisPin = 0; thisPin < 8; thisPin++) { // initialize the output pins: pinMode(col[thisPin], OUTPUT); pinMode(row[thisPin], OUTPUT); // take the col pins (i.e. the cathodes) high to ensure that // the LEDS are off: digitalWrite(col[thisPin], HIGH); } } void loop() { // iterate over the rows (anodes): for (int thisRow = 0; thisRow < 8; thisRow++) { // take the row pin (anode) high: digitalWrite(row[thisRow], HIGH); // iterate over the cols (cathodes): for (int thisCol = 0; thisCol < 8; thisCol++) { // when the row is HIGH and the col is LOW, // the LED where they meet turns on: digitalWrite(col[thisCol], LOW); // wait a few milliseconds to see it: delay(30); // turn the pixel off: digitalWrite(col[thisCol], HIGH); } // take the row pin low to turn off the whole row: digitalWrite(row[thisRow], LOW); } }