int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13};
byte data[10][7] = { { 1,1,1,1,1,1,0 }, // = 0
{ 0,1,1,0,0,0,0 }, // = 1
{ 1,1,0,1,1,0,1 }, // = 2
{ 1,1,1,1,0,0,1 }, // = 3
{ 0,1,1,0,0,1,1 }, // = 4
{ 1,0,1,1,0,1,1 }, // = 5
{ 1,0,1,1,1,1,1 }, // = 6
{ 1,1,1,0,0,0,0 }, // = 7
{ 1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,0,0,1,1 } // = 9
};
byte led[10][4] = { { 0,0,0,0 },
{ 0,0,0,1 },
{ 0,0,1,0 },
{ 0,0,1,1 },
{ 0,1,0,0 },
{ 0,1,0,1 },
{ 0,1,1,0 },
{ 0,1,1,1 },
{ 1,0,0,0 },
{ 1,0,0,1 }
};
void setup() {
for (int thisLed = 0; thisLed < 13; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
// 在七段顯示器上顯示指定的一個數字
void display(byte digit) {
byte pin = 2;
for (byte seg = 0; seg < 7; ++seg) {
digitalWrite(pin, data[digit][seg]);
++pin;
}
}
// 在LED上依序顯示
void display2(byte digit) {
byte pin = 13;
for (byte seg = 0; seg < 4; ++seg) {
digitalWrite(pin, led[digit][seg]);
--pin;
}
}
void loop() {
for (byte digit = 0; digit <= 9; digit++) {
delay(1000);
display(digit);
display2(digit);
}
}