2024 - 2학기/전자공학
02_2 7세그먼트 디스플레이
SHIN JI HAN
2025. 1. 21. 17:54
728x90
728x90
Reporting Date: October. 15, 2024
7세그먼트 디스플레이에 대해 다루고자 한다.
목차
01 7 세그먼트 디스플레이
(7-segment display)
숫자를 표시하기 위해 사용되는 전자 부품으로,
디지털 시계, 전자 계산기 등에서 널리 사용된다.
1. 구성
7개의 LED 세그먼트는 A에서 G까지 이름이 붙어 있으며,
추가로 소수점 표시용 LED(DP)로 구성되어 있다.
이들 세그먼트는 막대형 모양으로 배열되어 있다.
각각의 세그먼트는 특정 패턴으로 켜짐/꺼짐
상태를 제어하여 숫자 모양을 표현할 수 있다.
2. 숫자 표시 예시
각 세그먼트를 켜고 끄는 조합을 통해 숫자를 표시한다.
# 표시된 알파벳을 켠다.
1: B, C
2: A, B, D, E, G
3: A, B, C, D, G
4: B, C F, G
5: A, C, D, F, G
6: A, C, D, E, F, G
7: A, B, C, (F)
8: A, B, C, D, E, F, G
9: A, B, C, D, F, G
0: A, B, C, D, E, F
3. 동작 방식
7세그먼트 디스플레이는 두 가지 종류가 있다.
① 공통 애노드
(Common Cathode)
모든 애노드(+)가 연결되어 있고,
개별 세그먼트를 음극(−)으로 연결하여 제어한다.
② 공통 캐소드
(Common Anode)
모든 캐소드(−)가 연결되어 있고,
개별 세그먼트를 양극(+)으로 연결하여 제어한다.
실습
팅커캐드(Tinkercad) 사이트로 들어간다.
Tinkercad - From mind to design in minutes
Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.
www.tinkercad.com
회로도 설계
코드 작성
7세그먼트 디스플레이를 제어하여
숫자 0부터 9까지를 1초 간격으로 표시하는 프로그램.
const byte number[10] = {
// dot gfedcba
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
void setup() {
// 2~9번 핀을 a, b, c, d, e, f, g, dot의 순서로 사용한다.
// 2~9번 핀을 출력 모드로 설정한다.
for (int i = 2; i <= 9; ++i) {
pinMode(i, OUTPUT);
}
// 점(dot)은 표시하지 않으므로 LOW 상태로 설정한다.
digitalWrite(9, LOW);
}
void loop() {
// 0부터 9까지의 값을 1초 간격으로 순차적으로 표시한다.
for (int k = 0; k <= 9; ++k) {
fndDisplay(k); // k 값을 출력한다.
delay(1000); // 1초 대기
}
}
// LED 점등 함수
void fndDisplay(int displayValue) {
// 모든 핀(2~9)을 LOW로 설정하여 먼저 세그먼트를 끈다.
for (int i = 2; i <= 9; ++i) {
digitalWrite(i, LOW);
}
// number 배열의 해당 숫자 비트 값을 읽어서 세그먼트에 출력한다.
for (int i = 0; i <= 7; ++i) {
boolean bitValue = bitRead(number[displayValue], i); // i번째 비트값을 읽는다.
digitalWrite(i + 2, bitValue); // 해당 비트를 2~9번 핀에 출력
}
}
Integrated Circuits (7세그먼트 디스플레이 다이어그램 출처)
728x90
반응형