Hey,
Just an update. Here is my sample code, can you please suggest to me how to simplify this code, especially the pins? Thanks in advance.
int Pin0 = 2;
int Pin1 = 3;
int Pin2 = 4;
int Pin3 = 5;
int Pin4 = 6;
int Pin5 = 7;
int Pin6 = 8;
int Pin7 = 9;
int Pin8 = 10;
int Pin9 = 11;
void setup()
{
}
void OnLED (int a, int b)
{
if (a == 0)
{
pinMode(Pin0, OUTPUT);
digitalWrite (Pin0, HIGH);
if (b == 0)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin1, LOW);
}
if (b == 1)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin2, LOW);
}
if (b == 2)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin3, LOW);
}
if (b == 3)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, OUTPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin4, LOW);
}
if (b == 4)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, OUTPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin5, LOW);
}
if (b == 5)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, OUTPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin6, LOW);
}
if (b == 6)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, OUTPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin7, LOW);
}
if (b == 7)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, OUTPUT);
pinMode(Pin9, INPUT);
digitalWrite (Pin8, LOW);
}
if (b == 8)
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);
pinMode(Pin7, INPUT);
pinMode(Pin8, INPUT);
pinMode(Pin9, OUTPUT);
digitalWrite (Pin9, LOW);
}
}
}
void loop()
{
for (a = 0; a < 9; a++)
{
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
for (b = 0; b < 8; b++)
{
OnLED (a, b);
delay(100);
}
}
}
Charlieplexing_90_LEDs_inverted.ino (33.2 KB)