9 2 FND 4 9 1 void setup

  • Slides: 21
Download presentation

9. 2 FND 제어 4

9. 2 FND 제어 4

예제 9. 1의 스케치 void setup(){ for (int i=2; i<=9; i++){ pin. Mode(i, OUTPUT);

예제 9. 1의 스케치 void setup(){ for (int i=2; i<=9; i++){ pin. Mode(i, OUTPUT); } } 세그먼트의 a, b, c, d, e, f, g, dot 에 디지털입출력 핀 2~9번을 연결 하고, 출력모드 설정 void loop() { digital. Write(2, LOW); digital. Write(3, LOW); digital. Write(4, LOW); digital. Write(5, LOW); digital. Write(6, LOW); digital. Write(7, LOW); digital. Write(8, HIGH); digital. Write(9, HIGH); } a=0 b=0 c=0 d=0 e=0 f=0 g=1 dot = 1 7

데이터 배열 사용 1차원 배열 구성 int deg. Data 0[8]={0, 0, 0, 1, 1};

데이터 배열 사용 1차원 배열 구성 int deg. Data 0[8]={0, 0, 0, 1, 1}; int deg. Data 1[8]={1, 0, 0, 1, 1, 1}; int deg. Data 2[8]={0, 0, 1, 0, 1}; int deg. Data 3[8]={0, 0, 1, 1, 0, 1}; int deg. Data 4[8]={1, 0, 0, 1, 1, 0, 0, 1}; 2차원 배열 구성 int deg. Data[5][8]={{0, 0, 0, 1, 1}, {1, 0, 0, 1, 1, 1}, {0, 0, 1, 0, 1}, {0, 0, 1, 1, 0, 1}, {1, 0, 0, 1, 1, 0, 0, 1}, {0, 1, 0, 0, 1}} 10

FND 모듈의 회로도 • 7 -Segment LED의 구조 – Common Cathode형의 FND – 8개의

FND 모듈의 회로도 • 7 -Segment LED의 구조 – Common Cathode형의 FND – 8개의 입력 신호선 : SA_A~SA_H, SB_A~SB_H 14

7 -Segment에서 16진수 표시 16 진수 16진수 표현 7 -세그먼트의 비트값 데이터 값 H

7 -Segment에서 16진수 표시 16 진수 16진수 표현 7 -세그먼트의 비트값 데이터 값 H G F E D C B A ( HEX ) 0 0 0 1 1 1 0 X 3 F 1 0 0 0 1 1 0 0 X 06 2 0 1 1 0 X 5 B 3 0 1 0 0 1 1 0 X 4 F 4 0 1 1 0 0 X 66 5 0 1 1 0 1 0 X 6 D 6 0 1 1 1 0 X 7 D 7 0 0 1 1 1 0 X 27 8 0 1 1 1 1 0 X 7 F 9 0 1 1 1 1 0 X 6 F A 0 1 1 1 0 X 77 B 0 1 1 1 0 0 0 X 7 C C 0 0 1 1 1 0 0 1 0 X 39 D 0 1 1 1 1 0 0 X 5 E E 0 1 1 0 0 1 0 X 79 F 0 1 1 1 0 0 0 1 0 X 71 15

예제 9. 3의 스케치 byte FND[8] = {22, 24, 26, 28, 30, 32, 34,

예제 9. 3의 스케치 byte FND[8] = {22, 24, 26, 28, 30, 32, 34, 36}; byte FND_DATA[]={0 x 3 F, 0 X 06, 0 X 5 B, 0 X 4 F, 0 X 66, 0 X 6 D, 0 X 7 C, 0 X 07, 0 X 7 F, 0 X 67, 0 X 7 C, 0 X 39, 0 X 5 E, 0 X 79, 0 X 71, 0 X 08, 0 X 80}; byte cnt = 0; 사용할 핀을 배열 FND로 선언 배열 FND_DATA에 0~9, A~F, 밑줄, 점을표 현할 18개의 FND 표현 데이터 저장 void setup() { byte z; for(z=0; z<8; z++) pin. Mode(FND[z], OUTPUT); } void FND_display(byte data) { byte z; for(z=0; z<8; z++) digital. Write(FND[z], bit. Read(data, z)); } 함수 FND_display(int data) 선언 배열 FND_DATA의 숫자/문자 데이터 순서에 따라 출력 void loop() { FND_display(FND_DATA[cnt]); cnt++; if(cnt>17) cnt=0; delay(1000); } 변수 cnt 를 17까지 증가시키면서 그 값에 해당하는 숫자/문자를 함수 FND_display()를 호출하여 출력 17