7 세그먼트 LED
- 일반 명칭 FND (Flexible Numeric Display)
- 7개 선분으로 숫자 표시, 실제는 소숫점을 표시하는 LED 추가하여 8개
-> 1개 바이트로 제어 가능
- 종류 : 공통 양극, 공통 음극
-> 핀 개수, 위치 동일
-> 핀 번호는 소수점 있는 면이 가장 왼쪽 1번, 반시계로 증가
7 세그먼트 LED : CLS-5612BUR-11
- 공통 핀을 Vcc에 연결, 각 세그먼트 핀에 LOW(0) 신호를 걸면 LED 불이 켜진다.
- 공통 음극형 5611AS(Common Cathode)는 반대다.
-> 공통 핀을 GND 연결, 각 세그먼트 핀에 HIGH(1) 신호 걸면 LED 불이 켜짐
- 세그먼트 핀은 a->b->c->d->e->f->g->dp(h) 순서로 표시 (시계방향)
7세그먼트 LED는 A~H까지 연결된 아두이노 핀 번호를 알아야함
-> A부터 H까지 3, 2, A4, A3, A2, 4, 5, A5 순서
7 Segment LED의 A부터 연결된 아두이노 핀번호 순서대로 등록
digits[] []에서 0~9까지 표현할 수 있는 조합 설정
공통 전원선인 3,8번 핀은 하나만 연결해도 된다.
setSegments(i); //위에 나온 숫자를 7세그먼트 LED로 표현
->void setSegments(int n){ for(inti=0;i<8;i++){digitalWrite(segmentPins[i], digits[n][i]);}}
4자리 7세그먼트 표시장치를 위해서는 32개 제어선 소요->너무 많이 소요되어 좋은 방법 아님
-> 사람 눈의 잔상효과를 이용
-> 한 번에 하나의 숫자를 표시하고 빠른 속도로 바꾸어 표시 반복 -> 잔상으로 인해 4자리가 동시에 표시되는 효과
=> 32핀이 아닌 12핀으로 동작 가능 (8개 핀은 7세그먼트의 8개 핀과 동일, 4개는 자릿수 선택)
FND 배열 부품 연결
- 아두이노 10,11,12,13핀으로 네 자리 출력을 원하는 자릿 위치 선택
-> byte digitPins[] = {13,12,11,10}; //d1,d2,d3,d4
- 8개 세그먼트 제어하는 핀은 각 자리마다 공통으로 연결
-> byte segmentPins[] = {2,3,4,5,6,7,8,9}; //A,B,C,D,E,F,G,H
- 공통 음극 방식이면
-> d1(10핀)에 LOW를 걸어 출력 선택
LCD 핀
1.GND
2.Vcc
3.RS - LCD 용도 결정, 명령 실행 시키는 커맨드 모드, 문자 출력하는 문자 모드 중 선택 (2핀)
4.EN - 전송할 데이터 준비 여부 LCD에 알려주는데 사용 (3핀)
5.RW - 읽기/쓰기 모드 (쓰기 모드 사용->항상 GND와 연결)
6.D4,D5,D6,D7 -D0~D3은 4핀 모드라 사용 안함 (4,5,6,7핀)
LCD에 텍스트 표기
#include <LiquidCrystal.h> //라이브러리
LiquidCrystal lcd(2,3,4,5,6,7); //LCD객체 초기화
lcd.begin(16,2); //16x2 LCD 문자열 크기 지정
lcd.setCursor(0,1); //커서 이동 함수: 0열 1행
lcd.print("Cho's Display"); //문자 출력 함수
'학교수업' 카테고리의 다른 글
가상현실프로그래밍 11주차 (0) | 2021.11.18 |
---|---|
가상현실프로그래밍 10주차 (0) | 2021.11.17 |
웹개발기초 11주차 (0) | 2021.11.14 |
가상현실프로그래밍 9주차 (0) | 2021.11.12 |
정보보호개론 9주차 (1) | 2021.11.09 |