const int segmentPins[] = {7, 8, 9, 10};  // Pinos F a I
const int digitCommonPins[] = {2, 3, 4, 5, 6};  // Pinos D1 a D5 (comum positivo)

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

  for (int i = 0; i < 5; i++) {
    pinMode(digitCommonPins[i], OUTPUT);
  }
}

void loop() {
  // Exemplo: Acender o número "1" no terceiro dígito
  displayDigit(3, 0);  // Troque para o dígito desejado e número desejado


  delay(1000);  // Aguarde 2 segundos
}

void displayDigit(int digit, int value) {
  // Desligar todos os dígitos
  for (int i = 0; i < 5; i++) {
    digitalWrite(digitCommonPins[i], HIGH);
  }

  // Desligar todos os segmentos
  for (int i = 0; i < 4; i++) {
    digitalWrite(segmentPins[i], LOW);
  }

  // Determinar quais segmentos devem ser ligados para o número desejado
  int segmentsToLight[4] = {LOW, LOW, LOW, LOW};  // Inicialmente, todos desligados

  // Adicione os segmentos necessários para o número desejado
  switch (value) {
    /*
      segmentsToLight[0] = HIGH;  // F
      segmentsToLight[1] = HIGH;  // G
      segmentsToLight[2] = HIGH;  // H
      segmentsToLight[3] = HIGH;  // I
      */

    case 0:
      segmentsToLight[0] = HIGH;  // F
      segmentsToLight[1] = HIGH;  // G
      segmentsToLight[2] = HIGH;  // H
      segmentsToLight[3] = HIGH;  // I
      break;
    // Continue para os outros números
  }

  // Ativar os segmentos necessários
  for (int i = 0; i < 4; i++) {
    digitalWrite(segmentPins[i], segmentsToLight[i]);
  }

  // Ligar o dígito desejado
  digitalWrite(digitCommonPins[digit], LOW);
}