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