// Подставим определения для пинов индикатора (по схеме)
#define Seg_A 2
#define Seg_B 3
#define Seg_C 4
#define Seg_D 5
#define Seg_E 6
#define Seg_F 8
#define Seg_G 7
// Массив изображений цифр от 0 до 9, что не горит - равно 0
int Number[10][8] = { 
  {Seg_A,Seg_B,Seg_C,Seg_D,Seg_E,Seg_F,0},  //цифра 0
  {0,Seg_B,Seg_C,0,0,0,0},                  //цифра 1
  {Seg_A,Seg_B,0,Seg_D,Seg_E,0,Seg_G},      // ну и так далее
  {Seg_A,Seg_B,Seg_C,Seg_D,0,0,Seg_G},
  {0,Seg_B,Seg_C,0,0,Seg_F,Seg_G},
  {Seg_A,0,Seg_C,Seg_D,0,Seg_F,Seg_G},
  {Seg_A,0,Seg_C,Seg_D,Seg_E,Seg_F,Seg_G},
  {Seg_A,Seg_B,Seg_C,0,0,0,0},
  {Seg_A,Seg_B,Seg_C,Seg_D,Seg_E,Seg_F,Seg_G},
  {Seg_A,Seg_B,Seg_C,Seg_D,0,Seg_F,Seg_G},
};

void setup() {
  // put your setup code here, to run once:
  // все пины для индикатора - выходы
pinMode(Seg_A, OUTPUT);
pinMode(Seg_B, OUTPUT);
pinMode(Seg_C, OUTPUT);
pinMode(Seg_D, OUTPUT);
pinMode(Seg_E, OUTPUT);
pinMode(Seg_F, OUTPUT);
pinMode(Seg_G, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  // перечисление цифр на индикаторе от 0 до 9
  for (int count = 0; count <10; count++)
  {
    // функция "показать цифру" в течение 0,5с и потом погасить
    Number_Take(count,500);
    // задержка 0,5с - цифры переключаются мигая
    delay(500);
  } 
}
// функция, аргументы - номер цифры из массива, величина задержки
void Number_Take(int num, int del)
{
  for(int i = 0; i<8; i++)
  {
    // зажечь соответствующие цифре сегменты, если 0 - пропустить
    int a = Number[num][i];
    if (a != 0)
    {
      digitalWrite(a, HIGH);      
    }
  }
  // необходимая задержка
  delay(del);
  // также погасить все сегменты
  for(int i = 0; i<10; i++)
  {
    int a = Number[num][i];
    if (a != 0)
    {
      digitalWrite(a, LOW);
    }
  }
}