7-세그먼트에 대한 기초 전자회로에 대해 알아보고 제어해본다.
1. 회로도 구성
- 7세그먼트는 8개의 LED를 연결하는 것과 동일함
- 저항이 내장되어 있지 않으므로 디지털 출력 2~9번 포트를 각각의 저항(330ohm)을 통하여 7 세그먼트 핀으로 연결됨
핀 연결 방법은 아래와 같다.
- a: 2번 핀(디지털 출력)
- b: 3번 핀(디지털 출력)
- c: 4번 핀(디지털 출력)
- d: 5번 핀(디지털 출력)
- e: 6번 핀(디지털 출력)
- f: 7번 핀(디지털 출력)
- g: 8번 핀(디지털 출력)
- dp: 9번 핀(디지털 출력)
2. 회로설명
1) 7-세그먼트
- 7개의 획(dp 불포함시)으로 숫자나 문자를 나타낼 수 있는 표시장치
- 다수의 LED로 구성되어 있음
- 공통 anode 방식과 공통 cathode 방식이 있음(5611BS는 공통 anode 방식)
- 7세그먼트에 숫자를 표시할 때 각 핀의 출력상태는 아래와 같다. 공통 anode 타입은 Active Low이므로 0 일 때 해당 세그먼트의 불이 들어온다.
* Active Low란 로직 상태가 Low일 때 활성화되는 회로를 말함
3. 소스코드
/*****************************************************/ /* Project : Arduino Basic Training Course /* Title : 04_7S_Segment /* Descript : Single 7-Segment control example /* Platform : Arduion UNO /* IDE: Arduino Sketch 1.6/1.8 or vMicro /* Author : shlee853 /* History : Rev 1.0 2020.01.31 - Initial release /* /*****************************************************/ int segmentLEDs[] = {2, 3, 4, 5, 6, 7, 8, 9}; int segmentLEDsNum = 8; int digitForNum[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 }; void setup() { for (int i = 0 ; i < segmentLEDsNum ; i++) { pinMode(segmentLEDs[i], OUTPUT); } } void loop() { for (int i = 0 ; i < 10 ; i++) { for (int j = 0 ; j < segmentLEDsNum ; j++) { digitalWrite(segmentLEDs[j], digitForNum[i][j]); } delay(1000); } } |
728x90
'엔지니어링 > 임베디드' 카테고리의 다른 글
[아두이노 기초] 시리얼 통신 (0) | 2020.02.11 |
---|---|
[아두이노 기초교육] I2C 통신을 이용한 LCD 제어 (0) | 2020.02.02 |
[아두이노 기초교육] 피에조 스피커 제어 (0) | 2020.02.01 |
[아두이노 기초교육] RGB LED 제어 (0) | 2020.02.01 |
[아두이노 기초교육] LED 제어 (0) | 2020.01.16 |
댓글