본문으로 바로가기


< 4분48초 음성 정정 : 공통음극 입니다. >


7 세그먼트(7 segment) or FND(Flexible Numeric Display)


7 세그먼트는 세그먼트 방식의 숫자 표시 소자이며 FND라고도 불린다. 7개의 획으로 숫자나 알파벳을 표현할 수 있으며 7개의 획은 led로 구성되어 있어 불을 켜고 끄는 것으로 여러가지의 숫자나 문자를 표현할 수 있다.


7 세그먼트 사용법


<7 세그먼트 회로도>

7 세그먼트는 이렇게 dp까지 포함하여 7개의 획과 1개의 점으로 이루어져 있다. 


공통양극(Common Anode), 공통음극(Common Cathode)


7 세그먼트는 공통양극과 공통음극을 구분해서 사용해야 한다. 공통 양극일경우 공통핀(정 중앙 2개)을 vcc(5V)로 꽂는다. 공통 음극일 경우 공통핀(정 중앙 2개)을 GND(0V)에 꽂는다.

<공통 양극 : Common Anode>

공통 양극은 위의 회로도와 같이 공통핀이 +극에 연결되어 있다. 그러므로 불을켜고자 하는 획은 LOW로 만들어주어야 전압강하에 의하여 불이 켜지게 된다. 예를 들어 숫자 0을 만들고 싶으면 g획을 제외한 모든 불을 켜서 0모양을 만든다. (자세한 내용은 동영상 강의 참고)


<공통 음극 : Common Cathode>

공통 음극은 위의 회로도와 같이 공통핀이 -극에 연결되어 있다. 이 경우에는 불을 켜고자 하는 획을 HIGH상태로 만들어 불을 켠다. (자세한 내용은 동영상 강의 참조)


실습 내용


7 세그먼트에 원하는 숫자나 문자를 출력해 보자.


준비물


아두이노 보드, 브레드 보드 , 7 세그먼트 1개, 저항 330Ω 8개, 점퍼선 10개


회로도




 

소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int fnd[] = {345678910};
//fnd[0] a
//fnd[1] b
//fnd[2] c
//fnd[3] d
//fnd[4] e
//fnd[5] f
//fnd[6] g
//fnd[7] .
void setup() {
  for(int i=0; i<8; i++)
    pinMode(fnd[i], OUTPUT);
  
  digitalWrite(fnd[0], 0);
  digitalWrite(fnd[1], 1);
  digitalWrite(fnd[2], 0);
  digitalWrite(fnd[3], 0);
  digitalWrite(fnd[4], 1);
  digitalWrite(fnd[5], 0);
  digitalWrite(fnd[6], 0);
  digitalWrite(fnd[7], 0);
}
 
void loop() {
 
}
 
cs

ex5_fnd.ino


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int fnd[] = {345678910};
 
int luv[6][8= { {11100011}, // L
                {00000011},    // O
                {10000011},    // V
                {01100001},    // E
                {10011001},    // y
                {10001110},    // J.
                };
void setup() {
  for(int i=0; i<8; i++)
    pinMode(fnd[i], OUTPUT);
}
 
void loop() {
  for(int i=0; i<6; i++)
  {
    for(int j=0; j<8; j++)
    {
      digitalWrite(fnd[j], luv[i][j]); //동영상 강의 
    }
    delay(1000);
  }
}
 
cs

ex5_fnd2.ino


결과 영상




댓글을 달아 주세요

  1. 귀요미 2017.01.11 22:33 신고

    오 정보처리 알고리즘 단골 문제같네요 ㅋ

  2. ukigo 2017.02.25 08:32 신고

    아두이노 입문자 입니다
    그동안 FND에 대해 정말 궁금했는데
    덕분에 잘보고 갑니다~
    따라 해봤는데 잘되네요 감사합니다~

  3. 창Aㅏ 2017.03.11 18:45 신고

    void loop()에서 해야지 불이 계속 들어오는 거 아닌가요?
    왜 void setup()에서 하는 거예요??

    • BlogIcon 코딩런 2017.03.11 21:20 신고

      1번 예제 말씀하시는거죠? loop문에 써도 상관없지만 반복하면서 상태를 바꾸는 예제가 아니므로 한번만 실행하게끔 셋업에서 작성 하였습니다.

  4. 귀욤미 2017.03.12 21:12 신고

    아예 불이 안들어 오는데 왜 이런 건가요?ㅜㅜ
    다 제대로 꽂았고 코딩도 제대로 따라서 했는데 왜이런거죠 ㅜㅜ

    • 귀요미 2017.03.13 18:02 신고

      업로드시 코드에러가 없었다면,
      회로도를 보고, 다시 브레드보드에 꽂아보시기 바랍니다. 7세그먼트가 꽂는 전선이 많아서 실수하기가 쉽더라고요~

  5. 2017.11.12 11:47 신고

    저항을 다 다른걸로 하면 불이 안들어오나요?

    • Woong 2017.11.13 18:54 신고

      저항이 허용범위 내에서만 차이가있으면 불이 들어옴에는 문제가없으나 출력에 차이가 있을수는 있습니다

  6. 아두이노사용자 2017.12.21 20:31 신고

    불이 안 들어와요.

  7. ?? 2018.01.21 11:09 신고

    위 회로에서 다이오드 방향들이 >> 방향이 아니라 << 방향 아닌가요? 애노드쪽에 전압이 인가되야하는뎅

  8. 시니 2018.07.16 06:34 신고

    형 7세그먼트 2개 3개 4개 연결하려면 아두이노 핀수가 모잘라서 사용못하는데 알아보니까 74HC595N 이걸 사용하면 된대요. 막상 사고 나니까 사용법을 잘 모르겠어요. 형 예제좀 만들어주세요~~!!

티스토리 툴바