byte segValue[10][7] = {
{0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 1, 1, 1, 1},
{0, 0, 1, 0, 0, 1, 0},
{0, 0, 0, 0, 1, 1, 0},
{1, 0, 0, 1, 1, 0, 0},
{0, 1, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0}
};
byte segPin[7] = {8, 12, 3, 5, 6, 9, 2};
byte digitPin[3] = {7, 10, 11};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segPin[i], OUTPUT);
digitalWrite(segPin[i], HIGH);
}
for (int i = 0; i < 3; i++) {
pinMode(digitPin[i], OUTPUT);
digitalWrite(digitPin[i], LOW);
}
}
void loop() {
for (int i = 0; i < 2500; i++) {
display_N(i);
delay(95);
}
}
void display_N(int num) {
int units = num % 10;
int tens = (num / 10) % 10;
int hundreds = (num / 100) % 10;
segOutput(2, units);
segOutput(1, tens);
segOutput(0, hundreds);
}
void segClear() {
for (int i = 0; i < 7; i++) {
digitalWrite(segPin[i], HIGH);
}
}
void segOutput(int d, int Number) {
segClear();
digitalWrite(digitPin[d], HIGH);
for (int i = 0; i < 7; i++) {
digitalWrite(segPin[i], segValue[Number][i]);
}
delay(1);
digitalWrite(digitPin[d], LOW);
}