byte segValue[10][7] = {
  {0,0,0,0,0,0,1}, //0
  {1,0,0,1,1,1,1}, //1
  {0,0,1,0,0,1,0}, //2
  {0,0,0,0,1,1,0}, //3
  {1,0,0,1,1,0,0}, //4
  {0,1,0,0,1,0,0}, //5
  {0,1,0,0,0,0,0}, //6
  {0,0,0,1,1,1,1}, //7
  {0,0,0,0,0,0,0}, //8
  {0,0,0,0,1,0,0}  //9  
};

byte segPin[7] = {2, 3, 4, 5, 6, 7, 8}; //{a,b,c,d,e,f,g} 
byte digitPin[3] = {10, 11, 12}; 

void setup() {
  for (int i = 0; i < 10; i++) {
    pinMode(segPin[i], OUTPUT);
  }

  for (int i = 0; i < 7; i++) {
    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 < 100; i++) {
    display_N(i);
    delay(100); // Delay 1 detik
  }
}

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]);
  }
  digitalWrite(digitPin[d], LOW);
}
$abcdeabcde151015202530fghijfghij