// Segment pins: a-g
const int segPins[7] = {4, 5, 6, 7, 8, 9, 10}; // a to g

// Digit control pins
const int digit3 = 13;  // หลักสิบ
const int digit4 = 1;   // หลักหน่วย

// Switch pins
const int switchPins[10] = {A0, A1, A2, A3, A4, A5, 2, 3, 11, 12};

int currentNum = 0;

// 7-segment patterns (0-9): a-g (1 = ON)
const byte numbers[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
};

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segPins[i], OUTPUT);
  }
  pinMode(digit3, OUTPUT);
  pinMode(digit4, OUTPUT);

  for (int i = 0; i < 10; i++) {
    pinMode(switchPins[i], INPUT_PULLUP);
  }
}

void loop() {
  // Check each switch
  for (int i = 0; i < 10; i++) {
    if (digitalRead(switchPins[i]) == LOW) {
      currentNum = i + 1;
      break;
    }
  }

  displayNumber(currentNum);
}

// Display 2-digit number using digit3 and digit4
void displayNumber(int num) {
  int tens = num / 10;
  int ones = num % 10;

  // Show tens
  digitalWrite(digit4, LOW);
  showDigit(tens);
  digitalWrite(digit3, HIGH);
  delay(5);
  digitalWrite(digit3, LOW);

  // Show ones
  showDigit(ones);
  digitalWrite(digit4, HIGH);
  delay(5);
  digitalWrite(digit4, LOW);
}

// Activate segments to show digit (0–9)
void showDigit(int num) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(segPins[i], numbers[num][i]);
  }
}
$abcdeabcde151015202530354045505560fghijfghij