// charlieplex 30 leds with board design so can do 10 leds with 4 pins, 20 leds with 5 pins and 30 leds with 6 pins // pins 7 to 12 #define Q 7 #define R 8 #define S 9 #define T 10 #define U 11 #define V 12 int myArray[60] = { Q,R,R,Q, // 0,1 R,S,S,R, // 2,3 S,T,T,S, // 4,5 Q,S,S,Q, // 6,7 R,T,T,R, // 8,9 Q,T,T,Q, // 10,11 Q,U,U,Q, // 12,13 R,U,U,R, // 14,15 S,U,U,S, // 16,17 T,U,U,T, // 18,19 Q,V,V,Q, // 20,21 R,V,V,R, // 22,23 S,V,V,S, // 24,25 T,V,V,T, // 26,27 U,V,V,U // 28,29 }; void setup() { } void loop() { int i; for (i=0;i<30;i++) { light(i); delay(1000); } } void light( int i){ pinMode(Q,INPUT); pinMode(R,INPUT); pinMode(S,INPUT); pinMode(T,INPUT); pinMode(U,INPUT); pinMode(V,INPUT); i = i + i; // x 2 but adds are faster pinMode( myArray[i], OUTPUT ); digitalWrite(myArray[i], HIGH ); pinMode( myArray[i+1], OUTPUT ); digitalWrite( myArray[i+1], LOW ); }