안녕하세요.
이번 포스팅에서 여러개의 Seven Segment를 Common Anode Type를 동시에 제어하는 방식에 대해 알아보겠습니다.
※1. 7-Segment FND (Common Anode Type)제어
7-Segment FND (Field's Numeric Display)는 일종의 숫자 표시 장치로, 일반적으로 디지털 시계, 계산기, 디지털 계측기 등에서 사용됩니다. "FND"는 "Field's Numeric Display"의 약자이며, 7개의 LED 세그먼트로 구성되어 있습니다. 이 7개의 세그먼트는 각각 숫자를 표시하는 데 사용됩니다.
Common Anode (공통 양극) 타입의 7-Segment FND에서는 모든 LED 세그먼트의 양극이 공통으로 연결되어 있습니다. 이는 모든 세그먼트의 양극이 함께 연결되어 전체적으로 양극이 공유된다는 것을 의미합니다. 각각의 LED 세그먼트는 음극이 개별적으로 제어됩니다.
보통 Common Anode FND의 경우, 세그먼트에 음극을 제어하여 각 세그먼트가 켜지거나 꺼지도록 합니다. 이를 통해 특정 숫자를 표시할 수 있습니다. 예를 들어, 숫자 '0'을 표시하려면 세그먼트 패턴을 조합하여 숫자 '0'의 모양을 나타내는 LED를 켤 수 있습니다.
7-Segment FND는 숫자 0부터 9까지의 숫자뿐만 아니라 일부 문자도 표시할 수 있습니다. 예를 들어, 'A'부터 'F'까지의 문자를 표시할 수 있도록 디자인된 7-Segment FND도 있습니다.
이러한 특징으로 인해 7-Segment FND는 숫자와 문자를 간단하게 표시하는 데 유용한 장치입니다.
Common Anode Type의 경우 해당 자리의 값이 0(High)일때 켜집니다.
a | b | c | d | e | f | g | dp | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | X |
2 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | X |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | X |
4 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | X |
5 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | X |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | X |
7 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | X |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X |
9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | X |
※2. Wiring (배선 연결)
Common Cathode일 경우와 나머지 연결을 동일하지만 dlruddn 상하에 공통 전원 핀이 Vcc이기에 전원핀중 하나는 +를 연결해야합니다. 저항은 330ohm을 사용하였고 100~1000ohm에서 적당하게 사용해주세요.
※3. 소스코드 및 동작
▶1. 소스코드
0부터 9까지를 1초간 변화하면서 반복하는 코드를 실행해 보겠습니다. (소스코드는 첨부파일 제공해 드리겠습니다.)
// 7세그먼트 디스플레이에 표시할 숫자 패턴 정의 const byte digitPatterns[] = { B1000000, // 0 B1111001, // 1 B0100100, // 2 B0110000, // 3 B0011001, // 4 B0010010, // 5 B0000010, // 6 B1111000, // 7 B0000000, // 8 B0010000 // 9 }; // 각 세그먼트에 대한 핀 번호 정의 const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8}; void setup() { // 각 세그먼트 핀을 출력으로 설정 for (int i = 0; i < 7; i++) { pinMode(segmentPins[i], OUTPUT); } } void loop() { // 0부터 9까지의 숫자를 표시 for (int i = 0; i < 10; i++) { displayNumber(i); delay(1000); } } void displayNumber(int number) { // 각 세그먼트를 켜거나 끔 for (int i = 0; i < 7; i++) { digitalWrite(segmentPins[i], bitRead(digitPatterns[number], i)); } } |
▶2. 하드웨어 연결 및 동작 확인
숫자가 1씩 1초마다 즈가함을 확인할 수 있습니다.
이상으로 아두이노에서 Common Anode Type 7-segment를 다루는 방법에 대한 설명을 마치겠습니다.
다름 포스트에서 여러개의 4digit 7segment 즉, 4개의 7-segment가 하나로 연결되어 있는 모듈을 다뤄보겠습니다.
감사합니다.
'Embedded System > Arduino Board' 카테고리의 다른 글
[Arduino] 아두이노 8x8 Matrix Dot LED(1088BS)제어하기 (7) (1) | 2024.06.03 |
---|---|
[Arduino] 아두이노 4Digit 7Segment(4자리 FND)제어하기 (6) (0) | 2024.06.02 |
[Arduino] 아두이노 Common Cathode 7 Segment(FND) 제어하기 (4) (0) | 2024.05.22 |
[Arduino] 아두이노 핀맵 & 아두이노 사양 모음 (0) | 2024.05.20 |
[Arduino] 아두이노 LED 여러개 제어하기 (3) (0) | 2024.05.13 |