안녕하세요, 여러분! 오늘은 Arduino 프로젝트에서 7 세그먼트 디스플레이(SSD)를 사용하는 방법에 대해 알아보겠습니다. 7 세그먼트 디스플레이는 디지털 시계, 전자 계량기, 계산기 및 숫자 정보를 표시하는 기타 전자 장치에서 널리 사용되는 전자 디스플레이 장치입니다.
7 세그먼트 디스플레이란?
7 세그먼트 디스플레이는 10진수를 표시하기 위한 단순하고 직관적인 방법입니다. 복잡한 도트 매트릭스 디스플레이의 대안으로, 각 자릿수를 7개의 세그먼트와 하나의 소수점(DP)으로 구성된 LED로 표현합니다. 이 키트에서는 4 자리 7 세그먼트 디스플레이를 사용하며, 다중화 기술을 사용하여 디스플레이를 제어합니다.
4 자리 7 세그먼트 디스플레이의 구조
4 자리 7 세그먼트 디스플레이에는 총 12개의 핀이 있습니다:
- 8개의 핀은 각각의 세그먼트(A-G)와 소수점(DP)을 제어합니다.
- 나머지 4개의 핀은 각 자릿수(D1-D4)를 나타냅니다.
디스플레이 모듈의 각 세그먼트는 다중화되어 동일한 양극 연결점을 공유합니다. 각 자릿수는 고유한 공통 음극 연결 지점이 있어 각 숫자를 독립적으로 켜거나 끌 수 있습니다. 다중화 기술을 통해 디스플레이를 제어하는 데 필요한 마이크로컨트롤러 핀 수를 줄일 수 있습니다.
멀티플렉싱이란?
멀티플렉싱은 디스플레이 장치에 한 번에 한 자리씩 표시하고 디스플레이 장치 간에 매우 빠르게 전환하는 기술입니다. 인간의 눈은 시력의 지속성 때문에 빠른 전환을 인식하지 못합니다. 따라서 모든 디스플레이가 동시에 켜져 있는 것처럼 보입니다.
예를 들어, 1234를 표시하려면:
- "1"에 해당하는 세그먼트를 켜고 첫 번째 자리(D1)를 켭니다.
- 그런 다음 "2"를 표시하고 첫 번째 자리를 끄고 두 번째 자리(D2)를 켭니다.
- 이 과정을 세 번째 자리(D3)와 네 번째 자리(D4)에서도 반복합니다.
- 디스플레이 간의 전환은 매우 빠르게(약 1ms 지연) 수행됩니다.
이 방법을 사용하면 마이크로컨트롤러 핀 수를 줄이고, 각 자릿수를 독립적으로 제어할 수 있습니다.
회로 연결
이제 4 자리 7 세그먼트 디스플레이를 Arduino에 연결하는 방법을 살펴보겠습니다:
- 세그먼트 핀 연결:
- A, B, C, D, E, F, G, DP 핀을 각각 Arduino의 디지털 핀에 연결합니다.
- 자릿수 핀 연결:
- D1, D2, D3, D4 핀을 각각 다른 디지털 핀에 연결합니다.
예제 코드
다음은 4 자리 7 세그먼트 디스플레이를 사용하여 숫자를 표시하는 간단한 Arduino 예제 코드입니다:
// Define segment pins
int a = 2, b = 3, c = 4, d = 5, e = 6, f = 7, g = 8, dp = 9;
// Define digit pins
int d1 = 10, d2 = 11, d3 = 12, d4 = 13;
void setup() {
// Set all the pins as output
pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT);
pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT);
pinMode(g, OUTPUT); pinMode(dp, OUTPUT);
pinMode(d1, OUTPUT); pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT); pinMode(d4, OUTPUT);
}
void loop() {
// Display "1234" on the 4 digit 7-segment display
displayDigit(1, d1);
displayDigit(2, d2);
displayDigit(3, d3);
displayDigit(4, d4);
}
void displayDigit(int digit, int position) {
// Turn off all digits
digitalWrite(d1, LOW); digitalWrite(d2, LOW);
digitalWrite(d3, LOW); digitalWrite(d4, LOW);
// Turn on the correct digit
digitalWrite(position, HIGH);
// Display the correct segments for the digit
switch(digit) {
case 1: digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); break;
case 2: /* Add segments for digit 2 */ break;
// Add more cases for other digits
}
// Add a short delay to create the multiplexing effect
delay(5);
}
결론
이번 포스트에서는 4 자리 7 세그먼트 디스플레이를 Arduino에 연결하고 제어하는 방법에 대해 알아보았습니다. 멀티플렉싱 기술을 사용하여 디스플레이를 제어하고, 예제 코드를 통해 숫자를 표시하는 방법을 배울 수 있습니다. 프로젝트 진행 중 궁금한 점이 있으면 언제든지 문의해 주세요!
이 블로그 포스트가 여러분의 프로젝트에 도움이 되길 바랍니다. 다양한 가능성을 탐구하며 전자 프로젝트의 세계를 즐겨보세요! 🎉✨
'아두이노 러닝보드 > 아두이노 러닝보드 하드웨어설계' 카테고리의 다른 글
도트 매트릭스 및 MAX7219CNG 연결하기 💡 (1) | 2024.12.13 |
---|---|
74HC595 시프트 레지스터 연결하기 💡 (1) | 2024.12.13 |
DS1307 RTC 연결하기: 실시간 시계 구현하기 ⏰ (1) | 2024.12.13 |
Arduino 보드에 LCD 연결하기 💡 (1) | 2024.12.13 |
Eagle을 사용한 회로도 설계: 2단계 - Arduino에 LCD 연결하기💡 (1) | 2024.12.13 |