#define segA 10  // 'a' 세그먼트 연결 핀 번호
#define segB 11  // 'b' 세그먼트 연결 핀 번호
#define segC 12  // 'c' 세그먼트 연결 핀 번호
#define segD 7  // 'd' 세그먼트 연결 핀 번호
#define segE 6  // 'e' 세그먼트 연결 핀 번호
#define segF 9  // 'f' 세그먼트 연결 핀 번호
#define segG 8  // 'g' 세그먼트 연결 핀 번호
#define segDP 13 // 'dp' 세그먼트 연결 핀 번호
 
// main 함수에서 처리 편하게 하기 위해 핀번호 배열을 생성
int fndPort[8] = {segA, segB, segC, segD, segE, segF, segG, segDP};
// index 0-9 -> 숫자 1~9
// index 10 -> Blank
int fndData[11][8] = {
                    { 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
                    { 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
                    { 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
                    { 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
                    { 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
                    { 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
                    { 1, 0, 1, 1, 1, 1, 1, 0 }, // 6
                    { 1, 1, 1, 0, 0, 1, 0, 0 }, // 7
                    { 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
                    { 1, 1, 1, 1, 0, 1, 1, 0 }, // 9
                    { 0, 0, 0, 0, 0, 0, 0, 0 }, // 10 - Blank
                };   
 
void setup(){
    // 7 Segment 연결된 포트 모두 출력으로 설정
    for(int i = 0 ; i < 8 ; i++)
    {
        pinMode(fndPort[i],OUTPUT);
    }
}
 
void loop(){
    for(int i = 0 ; i < 10 ; i++){
        for(int j = 0 ; j < 8 ; j++){
            digitalWrite(fndPort[j], fndData[i][j]); 
        }
        delay(500);
    }
}