안녕하세요.
이번 포스팅에서는 4자리 7 Segment(FND)를 다루는 방법에 대해 알아보겠습니다.
아두이노(Arduino)와 4자리 FND(Four-Digit Seven-Segment Display)를 함께 사용하면 숫자나 문자를 표시할 수 있는 간단한 디지털 디스플레이를 만들 수 있습니다. 4자리 FND는 보통 7개의 세그먼트와 1개의 소수점(Dot)으로 구성된 4개의 디지털 디스플레이가 하나로 결합된 형태입니다. 이를 통해 최대 4자리 숫자를 표시할 수 있습니다. 이제 4자리 FND의 작동 원리와 아두이노와의 연결 방법을 설명해드리겠습니다.
※1. 4Digit 7 Segment 구조
4자리 FND의 구조
- 세그먼트: 각 자리에는 7개의 LED 세그먼트(A, B, C, D, E, F, G)와 소수점이 있습니다. 각 세그먼트는 특정 숫자를 표시하기 위해 켜지거나 꺼질 수 있습니다.
- 공통 핀: 4자리 FND에는 공통 애노드(Common Anode) 또는 공통 캐소드(Common Cathode)로 연결된 핀이 있습니다. 공통 애노드 방식에서는 공통 핀이 양극이고, 공통 캐소드 방식에서는 공통 핀이 음극입니다.
- 자리 선택: 4자리 FND는 각 자리마다 하나의 공통 핀이 있습니다. 이를 통해 특정 자리만 활성화하여 원하는 숫자를 표시할 수 있습니다.
(D1:천의 자릿수 FND 핀 / D2:백의 자릿수 FND 핀 / D3:십의 자릿수 FND 핀 / D1:일의 자릿수 FND 핀)
아래는 공통 핀을 Anode(+)로 가지는 Common Anode Type의 4Digit 7 Segment입니다.
아래는 공통 핀을 Cathode(-)로 가지는 Common Anode Type의 4Digit 7 Segment입니다.
아래 테스트에서는 Common Cathode Type을 사용합니다.!!
※2. Wiring (배선 연결)
실제 와이어링 방법:
- 세그먼트 핀 연결:
- 7-Segment 디스플레이의 A 핀을 브레드보드에 연결하고, 브레드보드에서 330 Ω (100~1000Ω) 저항을 통해 아두이노 디지털 핀 2에 연결합니다.
- 같은 방식으로 B, C, D, E, F, G, DP 핀을 각각 디지털 핀 3, 4, 5, 6, 7, 8, 9에 연결합니다.
- 디지트 핀 연결:
- 첫 번째 디지트의 공통 음극(Cathode) 핀을 아두이노 디지털 핀 10에 직접 연결합니다.
- 같은 방식으로 두 번째, 세 번째, 네 번째 디지트의 공통 음극 핀을 각각 디지털 핀 11, 12, 13에 연결합니다.
※3. 소스코드 및 동작
1234를 각 자리에 출력하는 코드를 실행해 보겠습니다.
▶1. 소스코드
1234를 출력 하는 코드를 실행해 보겠습니다. (소스코드는 첨부파일 제공해 드리겠습니다.)
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // A, B, C, D, E, F, G 핀 const int digitPins[4] = {13, 12, 11, 10}; // 4자리의 공통 음극 핀 const byte numbers[10][7] = { {1, 1, 1, 1, 1, 1, 0}, // 0 {0, 1, 1, 0, 0, 0, 0}, // 1 {1, 1, 0, 1, 1, 0, 1}, // 2 {1, 1, 1, 1, 0, 0, 1}, // 3 {0, 1, 1, 0, 0, 1, 1}, // 4 {1, 0, 1, 1, 0, 1, 1}, // 5 {1, 0, 1, 1, 1, 1, 1}, // 6 {1, 1, 1, 0, 0, 0, 0}, // 7 {1, 1, 1, 1, 1, 1, 1}, // 8 {1, 1, 1, 1, 0, 1, 1} // 9 }; void setup() { for (int i = 0; i < 7; i++) { pinMode(segmentPins[i], OUTPUT); } for (int i = 0; i < 4; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int number = 1234; // 표시할 숫자 for (int i = 0; i < 4; i++) { digitalWrite(digitPins[i], LOW); // 공통 음극 활성화 displayDigit(number % 10); // 해당 자리의 숫자 표시 number /= 10; delay(5); digitalWrite(digitPins[i], HIGH); // 공통 음극 비활성화 } } void displayDigit(int num) { for (int i = 0; i < 7; i++) { digitalWrite(segmentPins[i], numbers[num][i]); } } |
▶2. 하드웨어 연결 및 동작 확인
1234가 각 자리에 정확하게 출력됨을 확인할 수 있습니다.
이때 영상상에서 깜빡거림(Fliker- Free; 플리커) 현상은 실제 FND 4개가 눈이 인지하지 못할 속도로 깜빡거리는 동작을 하는데 카메라의 속도를 따라갈 수 있어 녹화에도 깜빡거립니다. 하지만 우리의 눈의 경우 카메라 보다 감지하는 속도가 훨씬 느려 실제로는 깜빡거림을 느끼지 못합니다. 자세한 내용은 아래 플리커 현상 링크를 참조해보세요.
https://semicircuit.tistory.com/78
이상으로 아두이노에서 4자리 FND를 다루는 방법에 대한 설명을 마치겠습니다.
다름 포스트에서 8X8 Matrix LED를 다루는 방법에 대해 다루겠습니다.
감사합니다.
'Embedded System > Arduino Board' 카테고리의 다른 글
[Arduino] 아두이노 3색 LED 제어하기(빨 초 파 흰)_Common Cathode (8) (0) | 2024.06.07 |
---|---|
[Arduino] 아두이노 8x8 Matrix Dot LED(1088BS)제어하기 (7) (1) | 2024.06.03 |
[Arduino] 아두이노 Common Anode 7Segment(FND) 제어하기 (5) (0) | 2024.05.22 |
[Arduino] 아두이노 Common Cathode 7 Segment(FND) 제어하기 (4) (0) | 2024.05.22 |
[Arduino] 아두이노 핀맵 & 아두이노 사양 모음 (0) | 2024.05.20 |