[ 기초 ] 아두이노 실습 - 7 Segment LED 카운트 하기

주피터 · 2019-10-25 · 0

FND(Flexible Number Display) 7 Segment LED 카운트 하기

① FND 소자설명 < 캐소드 구동 방식 >

② 하드웨어 구성

아래 그림 처럼 하드웨어를 구성한다.

현재 위그림의 회로 연결이 된 상태는 다음과 같습니다.

D0 -> teminal B

D1 -> teminal A

D2 -> teminal D

D3 -> teminal C

D4 -> teminal E

D5 -> teminal F

D6 -> teminal G

GND는 teminal -com2로 연결 하였습니다.

ⓞ FND 7 Segment LED 논리 회로

③ 아두이노 프로그래밍

프로그램 로직을 구현한다.

void setup()
{
    for( int pin = 0; pin < 7; pin++){
      pinMode(pin,OUTPUT);
    }
}

void loop()
{
    // 0
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
    digitalWrite(6,0); 
    delay(1000);
    // 1
    digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
    // 2
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,0);
    digitalWrite(6,1); 
    delay(1000);
    // 3
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,1); 
    delay(1000);
    // 4
    digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
    digitalWrite(6,1); 
    delay(1000);
    // 5
    digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
    digitalWrite(6,1); 
    delay(1000);
    // 6
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
    digitalWrite(6,0); 
    delay(1000);
    // 7
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
    digitalWrite(6,0); 
    delay(1000);
    // 8
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
    digitalWrite(6,1); 
    delay(1000);
    // 9
    digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
    digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
    digitalWrite(6,1); 
    delay(1000);
}

④ 실물 사진

아래 그림은 7 세그먼트 캐소드 방식의 구동하는 실제 사진입니다. 아래와 같이 보드를 구성하고 결과물을 확인합니다.

\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\--\---

※ FND 소자설명 < 애너드 구동 방식 > 일 경우 .

□ 회로 구성

캐서드 방식은 GND에서 전원부를 연결 해 주었으나 , 애너드 방식은 5v 또는 3.3v에서 전원을 공급해줍니다.

□ 아두이노 스케치

void setup()
{
    for( int pin = 0; pin < 7; pin++){
      pinMode(pin,OUTPUT);
    }
}

void loop()
{
    // 0
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,1); 
    delay(1000);
    // 1
    digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
    digitalWrite(6,1); 
    delay(1000);
    // 2
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,1);
    digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,1);
    digitalWrite(6,0); 
    delay(1000);
    // 3
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,1);
    digitalWrite(6,0); 
    delay(1000);
    // 4
    digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
    // 5
    digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
    // 6
    digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
    // 7
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,0);
    digitalWrite(6,1); 
    delay(1000);
    // 8
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
    // 9
    digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
    digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,0);
    digitalWrite(6,0); 
    delay(1000);
}

캐서드 방식에서는 "1"이 LED를 켜줬지만, 애너드 방식은 그와 반대이므로 "0"을 출력해야 LED가 켜집니다.

□ 실물 사진

0
댓글 0
첫 댓글을 남겨보세요.