//CATHODE
byte segValue[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,1,0,1,1} //9
};
byte segPin[7]={0,1,2,3,4,5,6};
byte digitPin[2] = {A0,A1};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segPin[i], OUTPUT);
}
for (int i = 0; i < 2; i++) {
pinMode(digitPin[i], OUTPUT);
digitalWrite(digitPin[i], LOW);
}
}
void loop() {
for (int i = 0; i < 60; i++) {
displayNumber(i);
delay(1); }}
void displayNumber(int num) {
int tens = num % 10;
int ones = (num / 10) % 10;
for(int i = 0; i < 100; i++) {
segOutput(1, tens);
segOutput(0, ones);
delay(1); }}
void segClear(){
for(int i = 0; i < 7; i++) {
digitalWrite(segPin[i], LOW);
}
}
void segOutput(int digit, int number) {
segClear();
digitalWrite(digitPin[digit], LOW);
for(int i = 0; i < 7; i++) {
digitalWrite(segPin[i], segValue[number][i]);
}
delay(4);
digitalWrite(digitPin[digit], HIGH);
}