Arduino 4 digit 7 segment
D8 1 (E segment)
D9 2 (D segment)
D10 3 (DP segment)
D11 4 (C segment)
D12 5 (G segment)
D13 6 (D4)
D7 7 (B segment)
D6 8 (D3)
D5 9 (D2)
D4 10 (F segment)
D3 11 (A segment)
D2 12 (D1)

아두이노와 4 Digit 7 Segment를 연결한다.

//a,b,c,d,e,f,g 상태값
byte segValue[10][7] = {
    { 1,1,1,1,1,1,0}, //0
    { 0,1,1,0,0,0,0}, //1
    { 1,1,0,1,1,0,1}, //2
    { 1,1,1,1,0,0,1}, //3
    { 0,1,1,0,0,1,1}, //4
    { 1,0,1,1,0,1,1}, //5
    { 1,0,1,1,1,1,1}, //6
    { 1,1,1,0,0,0,0}, //7
    { 1,1,1,1,1,1,1}, //8
    { 1,1,1,1,0,1,1}  //9  
};

byte segPin[8] = { 3, 7, 11, 9, 8, 4, 12, 10 }; //사용핀{a,b,c,d,e,f,g,dp} 순서대로임
byte digitPin[4] = { 2, 5, 6, 13 }; //segment 위치 핀

unsigned long readTime = 0; //현재시간
int d1 = 0; //1의 자리
int d2 = 0; //10의 자리
int d3 = 0; //100의 자리
int d4 = 0; //1000의 자리

void setup()
{
    for (int i = 0; i < 10; i++)
    {
        pinMode(segPin[i], OUTPUT);
    }
    for (int j = 0; j < 4; j++)
    {
        pinMode(digitPin[j], OUTPUT);
        digitalWrite(digitPin[j], HIGH);
    }
}

void loop()
{
    readTime = millis() / 1000;
    d1 = readTime % 10; //1의 자리
    d2 = (readTime / 10) % 10; //10의 자리
    d3 = (readTime / 100) % 10; //100의 자리
    d4 = (readTime / 1000) % 10; //1000의 자리

    segOutput(3, d1, 0); //1의 자리
    if (readTime >= 10) segOutput(2, d2, 0); //10의 자리  
    if (readTime >= 100) segOutput(1, d3, 0); //10의 자리  
    if (readTime >= 1000) segOutput(0, d4, 0); //10의 자리  
}
//LED 초기화
void segClear()
{
    for (int i = 0; i < 8; i++)
    {
        digitalWrite(segPin[i], LOW);
    }
}
//LED 출력
void segOutput(int d, int Number, int dp)
{
    segClear();
    digitalWrite(digitPin[d], LOW);
    for (int i = 0; i < 7; i++)
    {
        digitalWrite(segPin[i], segValue[Number][i]);
    }
    digitalWrite(segPin[7], dp);
    delayMicroseconds(1000); // 1 milisecond
    digitalWrite(digitPin[d], HIGH);
}

 

프로그램을 실행하면 0부터 시작하여 1초에 1씩 증가한다.

 

소스 출처

https://steemit.com/kr-arduino/@codingman/4-digit-7-segment-display

 

4-Digit 7-Segment Display 제어(아두이노) — Steemit

마무리 오늘은 실제 4-Digit 7-Segment Display 부품에 카운트 결과를 출력해 보았습니다. 지난 시간에 시리얼모니터로 결과를 출력했던 것과 다르게 좀 복잡해 보였을 꺼에요. 하나하나 뜯어보면 어렵

steemit.com

 

배선 출처

https://m.blog.naver.com/gbtec/221337841703

 

4-Digit 7-Segment

안녕하세요:> 이번에 알아볼 센서는! 4-Digit 7-Segment  입니다! 그럼 바로 시작하겠...

blog.naver.com

Arduino IDE version: 2.2.1 에서 FND 라이브러리를 검색할 수 없어 배선만 참조하였다.

+ Recent posts