Lab-06-Using a 7-segment
display with Arduino
1. 이론
1.1 7-segment
ㅇ 7-segment의 두가지 타입
- anode와 cathode 두 가지 타입이 있음.
- anode의 경우 각 단자에 –V(off)가 될 때 불이 켜지게 되고 cathode는 그 반대로 +V(on)일 때 동작.
- common-anode type
|
a |
b |
c |
d |
e |
f |
g |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
3 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
4 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
6 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
8 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
- common-cathode type
|
a |
b |
c |
d |
e |
f |
g |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
8 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
- 각 숫자별 7-segment 설정
2. 실습
2.1 7-segment
동작 실습
회로도
int leds[]= 2, 3, 4, 5,
6, 7, 8, 9;
// 2-8번 핀 까지 leds[]로 사용
int num[10][8] =
0,0,0,0,0,0,1,1, //0
1,0,0,1,1,1,1,1, //1
0,0,1,0,0,1,0,1, //2
0,0,0,0,1,1,0,1, //3
1,0,0,1,1,0,0,1, //4
0,1,0,0,1,0,0,1, //5
0,1,0,0,0,0,0,1, //6
0,0,0,1,1,1,1,1, //7
0,0,0,0,0,0,0,1, //8
0,0,0,0,1,0,0,1 //9
;
//anode 타입을 사용할 경우임. cathod e타입의 경우 0과 1을 반대로 쓴다.
void setup()
for (int i
= 0 ; i < 8 ; i++)
pinMode(leds[i], OUTPUT);
//7세그먼트의 각각 LED에 연결된 핀을 모두 OUTPUT으로 사용
void loop()
for (int i
= 0 ; i < 10 ; i++)
for (int j = 0 ; j < 8 ; j++)
digitalWrite(leds[j], num[i][j]);
delay(1000);
//7-segment로 0부터 9까지 1초간격으로 출력하기 위한 설정.
2.2 CD4511[7-segment Decoder]을 사용하여 7-segment 동작 실습.
회로도
int num[10][4]=
0,0,0,0, //0
0,0,0,1, //1
0,0,1,0, //2
0,0,1,1, //3
0,1,0,0, //4
0,1,0,1, //5
0,1,1,0, //6
0,1,1,1, //7
1,0,0,0, //8
1,0,0,1 //9
;
//cathode 타입을 사용해야함
int datapin[4] =
5,4,3,2; //D3(Din),
D2(Cin), D1(Bin), D0(Ain)
void setup()
for(int i=0;i<4;i++)
pinMode(datapin[i], OUTPUT);
//4개의 data핀을 모두 OUTPUT으로 사용.
void loop()
for(int i=0;i<10;i++)
for(int j=0;j<4;j++)
digitalWrite(datapin[j],num[i][j]);
delay(1000);
//0부터 9까지 출력.
2.3 74HC595를 이용하여 3개의 핀을 사용하여 7-segment를 0부터 9까지 동작시키기.
(3개의 핀을 사용하여 8개의 출력을 내보내는 74HC595와 4개의 핀을 사용하여 7개의 출력을 내보내는 CD4511[7-segment
Decoder]를 동시에 사용하면 3개의 핀으로 2개의 7-segment를 제어 할 수 있다.)
cd4511 진리표
cd4511 로직 다이어그램