[아두이노] 7-세그먼트(FND) 사용해보기


안녕하세요 대짜이찐입니다.
이번엔 7-세그먼트(segment)에 대해 알아보겠습니다.
7-세그먼트는 FND(Flexible Numeric Display)라고도 부르는 제품으로
주로 숫자를 표현하는데 사용되는 제품입니다.  

내부에 led가 8개가 들어가있고, 공통단자가 2개 있어서,
9개의 핀으로 0부터 9까지 그리고 소수점까지 표현할 수 있습니다.


FND는 공통(Common) 애노드(Anode) 타입,
공통 캐소드(Cathode) 타입으로 종류가 나뉘어집니다.


공통 애노드(+) 타입입니다. 공통단자(Common)에 전원 5V를 입력하고,
원하는 단자에 LOW(0V)신호를 주어서 LED를 On 시킬수 있습니다.


공통 캐소드(-) 타입입니다. 공통단자(Common)에 전원 GND를 입력하고,
원하는 단자에 HIGH(5V)신호를 주어서 LED를 On 시킬수 있습니다.


공통 애노드(Anode)
숫자
dp
g
f
e
d
c
b
a
16진수
0
1
1
0
0
0
0
0
0
0xC0
1
1
1
1
1
1
0
0
1
0xF9
2
1
0
1
0
0
1
0
0
0xA4
3
1
0
1
1
0
0
0
0
0xB0
4
1
0
0
1
1
0
0
1
0x99
5
1
0
0
1
0
0
1
0
0x92
6
1
0
0
0
0
0
1
0
0x82
7
1
1
1
1
1
0
0
0
0xF8
8
1
0
0
0
0
0
0
0
0x80
9
1
0
0
1
0
0
0
0
0x90

공통 애노드에서  숫자0은 dp를시작으로 했을때, 2진수로는 1100 0000이고
이 숫자를 16진수로 변환하면 0xC0입니다.

공통 캐소드(Cathode)
숫자
dp
g
f
e
d
c
b
a
16진수
0
0
0
1
1
1
1
1
1
0x3F
1
0
0
0
0
0
1
1
0
0x06
2
0
1
0
1
1
0
1
1
0x5B
3
0
1
0
0
1
1
1
1
0x4F
4
0
1
1
0
0
1
1
0
0x66
5
0
1
1
0
1
1
0
1
0x6D
6
0
1
1
1
1
1
0
1
0x7D
7
0
0
0
0
0
1
1
1
0x07
8
0
1
1
1
1
1
1
1
0x7F
9
0
1
1
0
1
1
1
1
0x6F

공통 캐소드에서  숫자0은 dp를시작으로 했을때, 2진수로는 0111 1111이고
이 숫자를 16진수로 변환하면 0x3F입니다.

아래 예제는 예제에 사용하는 제품은 공통 애노드(+) 타입 FND로
숫자 0~9까지 나타내는 예제입니다.




준비물: 아두이노 우노, 220Ω x 8EA, 점퍼선, 브레드보드, FND(anode타입)

아두이노
FND
5V
V+
D2
dp
D3
g
D4
f
D5
e
D6
d
D7
c
D8
b
D9
a


/*
7-segment (FND) 공통 애노드 타입
http://www.devicemart.co.kr/
*/
int seg[]={2,3,4,5,6,7,8,9}; // 배열로 D2~D9까지 세그먼트 연결
byte digits[10][8]={ // 0~9까지 숫자에 대한 LED 값
{ 1,1,0,0,0,0,0,0 }, // 0
{ 1,1,1,1,1,0,0,1 }, // 1
{ 1,0,1,0,0,1,0,0 }, // 2
{ 1,0,1,1,0,0,0,0 }, // 3
{ 1,0,0,1,1,0,0,1 }, // 4
{ 1,0,0,1,0,0,1,0 }, // 5
{ 1,0,0,0,0,0,1,0 }, // 6
{ 1,1,1,1,1,0,0,0 }, // 7
{ 1,0,0,0,0,0,0,0 }, // 8
{ 1,0,0,1,0,0,0,0 }  // 9
};

void setup(){
for (int i = 0; i < 8; i++){ // for 문을 사용해 핀 2~9까지 8개의 핀모드 출력으로 세팅
 pinMode(seg[i], OUTPUT);
}
}

void loop(){
for (int i = 0; i < 10; i++) {//이중 for문을 이용해 led로 숫자 출력  
 for (int j = 0; j < 8; j++){
   digitalWrite(seg[j], digits[i][j]);
 }
   delay(1000); // 1초간 딜레이
}
}

다음엔 시프트 레지스터를 사용해서 아두이노로 FND를 동작시켜보겠습니다.

감사합니다.

7-세그먼트 구매링크
http://www.devicemart.co.kr/goods/catalog?code=000600040001

댓글 쓰기

0 댓글