#define A 0 #define B 1 #define C 2 #define D 3 #define E 4 #define PIN_CONFIG 0 #define PIN_STATE 1 #define LED_Num 20 int matrix[LED_Num][2][5] = { // PIN_CONFIG PIN_STATE // A B C D E A B C D E { { OUTPUT, OUTPUT, INPUT, INPUT, INPUT }, { HIGH, LOW, LOW, LOW, LOW } }, { { OUTPUT, OUTPUT, INPUT, INPUT, INPUT }, { LOW, HIGH, LOW, LOW, LOW } }, { { OUTPUT, OUTPUT, OUTPUT, INPUT, OUTPUT }, { LOW, LOW, HIGH, LOW, LOW } }, { { OUTPUT, OUTPUT, OUTPUT, INPUT, INPUT }, { LOW, LOW, LOW, HIGH, LOW } }, { { INPUT, OUTPUT, OUTPUT, INPUT, OUTPUT }, { LOW, LOW, LOW, LOW, HIGH } }, { { INPUT, OUTPUT, OUTPUT, INPUT, INPUT }, { HIGH, LOW, LOW, LOW, LOW } }, { { INPUT, OUTPUT, OUTPUT, OUTPUT, OUTPUT }, { LOW, HIGH, LOW, LOW, LOW } }, { { INPUT, OUTPUT, OUTPUT, OUTPUT, OUTPUT }, { LOW, LOW, HIGH, LOW, LOW } }, { { INPUT, OUTPUT, INPUT, OUTPUT, INPUT }, { LOW, LOW, LOW, HIGH, LOW } }, { { INPUT, OUTPUT, INPUT, OUTPUT, INPUT }, { LOW, LOW, HIGH, LOW, HIGH } }, { { OUTPUT, INPUT, OUTPUT, OUTPUT, OUTPUT }, { HIGH, LOW, LOW, LOW, LOW } }, { { OUTPUT, OUTPUT, OUTPUT, INPUT, INPUT }, { LOW, HIGH, LOW, LOW, LOW } }, { { OUTPUT, INPUT, OUTPUT, INPUT, INPUT }, { LOW, LOW, HIGH, LOW, LOW } }, { { OUTPUT, INPUT, OUTPUT, INPUT, INPUT }, { LOW, LOW, HIGH, LOW, LOW } }, { { OUTPUT, INPUT, INPUT, OUTPUT, OUTPUT }, { LOW, LOW, LOW, LOW, HIGH } }, { { INPUT, INPUT, INPUT, OUTPUT, INPUT }, { HIGH, LOW, LOW, LOW, LOW } }, { { INPUT, OUTPUT, INPUT, OUTPUT, OUTPUT }, { LOW, HIGH, LOW, LOW, LOW } }, { { INPUT, OUTPUT, INPUT, OUTPUT, OUTPUT }, { LOW, LOW, HIGH, LOW, LOW } }, { { INPUT, INPUT, OUTPUT, OUTPUT, INPUT }, { LOW, LOW, LOW, HIGH, LOW } }, { { INPUT, INPUT, OUTPUT, OUTPUT, OUTPUT }, { LOW, LOW, LOW, HIGH, HIGH } } }; void lightOn( int led ) { pinMode( A, matrix[led][PIN_CONFIG][0] ); pinMode( B, matrix[led][PIN_CONFIG][1] ); pinMode( C, matrix[led][PIN_CONFIG][2] ); pinMode( D, matrix[led][PIN_CONFIG][3] ); pinMode( E, matrix[led][PIN_CONFIG][4] ); digitalWrite( A, matrix[led][PIN_STATE][0] ); digitalWrite( B, matrix[led][PIN_STATE][1] ); digitalWrite( C, matrix[led][PIN_STATE][2] ); digitalWrite( D, matrix[led][PIN_STATE][3] ); digitalWrite( E, matrix[led][PIN_STATE][4] ); } void setup() {} void loop() { for( int l = 0; l < LED_Num; l++ ) { lightOn( l ); delay( 1000 / LED_Num ); } }