/* Charlieplexing example: 9 pins driving 72 LEDs. */
#define SCAN_DELAY 300
byte LED_PINS[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
const byte LED_PIN_COUNT = sizeof(LED_PINS);
void setup() {
}
void loop() {
for (byte i = 0; i < LED_PIN_COUNT; i++) {
for (byte j = 0; j < LED_PIN_COUNT; j++) {
if (i != j) {
pinMode(LED_PINS[i], OUTPUT);
pinMode(LED_PINS[j], OUTPUT);
digitalWrite(LED_PINS[i], LOW);
digitalWrite(LED_PINS[j], HIGH);
delay(SCAN_DELAY);
pinMode(LED_PINS[i], INPUT);
pinMode(LED_PINS[j], INPUT);
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13