// Urutan LED dalam seven segment
// angka pertama bagian tengah atas
// angka kedua bagian kanan atas 
// angka ketiga bagian kanan bawah 
// angka keempat bagian tengah bawah 
// angka kelima bagian kiri bawah 
// angka keenam bagian kiri atas
// angka ketujuh bagian tengah
// angka kedelapan 0 = off, 1 = on

const byte numeral[10] =
{
  B11111100, // angka 0
  B01100000, // angka 1
  B11011010, // angka 2
  B11110010, // angka 3
  B01100110, // angka 4
  B10110110, // angka 5
  B10111110, // angka 6
  B11100000, // angka 7
  B11111110, // angka 8
  B11110110  // angka 9
};

// pin dari segment dp,G,F,E,D,C,B,A
const int segmentPins[8] = {5, 9, 8, 7, 6, 4, 3, 2};

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

void loop() {
  // seven segment akan memulai dari 0 sampai 9
  // cara kerjanya sistem ditambah 1 dengan delay 1 detik dan ditambah 1
  for (int i = 0; i < 10; i++) {
    showDigit(i);
    delay(1000);
  }
  delay(2000);
}

void showDigit(int number) {
  bool isBitSet;
  for (int segment = 0; segment < 8; segment++) {
    if (number < 0 || number > 9) {
      isBitSet = 0; // turn off all segments
    } else {
      // isBitSet will be true if given bit is 1 
      isBitSet = bitRead(numeral[number], segment);
    }
    isBitSet = !isBitSet; // Invert logic for common anode
    digitalWrite(segmentPins[segment], isBitSet);
  }
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
sevseg1:COM.1
sevseg1:COM.2
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP
sevseg2:COM.1
sevseg2:COM.2
sevseg2:A
sevseg2:B
sevseg2:C
sevseg2:D
sevseg2:E
sevseg2:F
sevseg2:G
sevseg2:DP
r1:1
r1:2