【 아두이노 모듈#2】 IR-적외선 모듈( KY-022) 다루기 #2
오늘은 지난 시간 다루었던 IR-적외선 모듈과 리모컨 편의 2편으로 다루어 보려 한다.
지난시간에는 IR모듈만 연결하여 리모컨을 눌렀을 때의 데이터를 시리얼 모니터로 확인해보았다. 이번 시간에는 이렇게 입력된 데이터를 가지고 쉽게 알아 볼 수 있는 단어로 바꾸어 시리얼 모니터로 표시해보자.
(예, LEFT BUTTON, LEFT Click , LEFT Arrow, Right Arrow... )
▶ 선수 학습 :
1. (모듈#1) IR-적외선모듈( KY-022)다루기#1 (적외선리모컨참고)☜ 강좌클릭
▶ IR-적외선 리모트 모듈 사양 및 동작 특성
※ 송신부에서는 데이터 값을 가지는 적외선을 약38Khz의 반송(운반) 주파수에 실어서 보내는데(변조), 이는 자연광, 형광등 불빛 등 주변 빛으로 부터 적외선(빛)을 잘 구분하여 수신하기 위함이고 , 송신부에서는 이 반송 주파수를 제거하여(복조) 데이터 값을 얻게 된다.
※ 송신기에서 사용되는 적외선은 가시광선 바로 위의 영역으로 열 발생이 없는 근적외선을 이용한다.
▶ 실습 목표 :
1. 리모컨을 눌렀을 때 각 버튼의 Data 값을 시리얼 모니터로 확인해 볼 수 있다.
2. if ... case 구문을 이용하여 리모컨 버튼 각각의 데이터 값을 사람이 판독하기 쉬운 단어로 바꾸어 시리얼 모니터로 출력 할 수 있다.
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
▶ 실습 절차 :
▶ 프로그램 코드 및 설명 :
/* IR-적외선 리모트 모듈 리모콘 ‘xinda’ 실습 2 */
#include<IRremote.h>
int IRPIN = 7;
IRrecv irDetect(IRPIN); // 'irDetect'라는 이름으로 수신객체 생성
decode_results irIn; //값 저장 되는 클래스객체(decode_res...)의 이름(irln)선언
void setup( ) {
Serial.begin(9600);
irDetect.enableIRIn(); // 수신 시작
}
void loop( ) {
if (irDetect.decode(&irIn)) { //수신된 값이 있다면 아래 실행
decodeIR(); // 값을 출력하는 서브루틴 호출
irDetect.resume( ); // 다음 값 받기
}
}
void decodeIR( ) { // 값을 출력하는 서브함수 제작
switch(irIn.value) {
case 0xFF629D:
Serial.println("Up Arrow");
break;
case 0xFF22DD:
Serial.println("Left Arrow");
break;
case 0xFF02FD:
Serial.println("OK ");
break;
case 0xFFC23D:
Serial.println("Right Arrow");
break;
case 0xFFA857:
Serial.println("Down Arrow");
break;
case 0xFF6897:
Serial.println("1");
break;
case 0xFF9867:
Serial.println("2");
break;
case 0xFFB04F:
Serial.println("3");
break;
case 0xFF30CF:
Serial.println("4");
break;
case 0xFF18E7:
Serial.println("5");
break;
case 0xFF7A85:
Serial.println("6");
break;
case 0xFF10EF:
Serial.println("7");
break;
case 0xFF38C7:
Serial.println("8");
break;
case 0xFF5AA5:
Serial.println("9");
break;
case 0xFF42BD:
Serial.println("*");
break;
case 0xFF4AB5:
Serial.println("0");
break;
case 0xFF52AD:
Serial.println("#");
break;
}
}
['Xinda' 리모콘의 키 값 참조]
▶ 실행영상 :
(전체화면 보기로 보세요)
▶ 아두이노 파일다운 :
'아두이노 > 3. 아두이노 모듈' 카테고리의 다른 글
【 아두이노모듈#6】 TM1637 4Digit Display #3. 마스터하기 (4) | 2019.03.06 |
---|---|
【 아두이노모듈#5】 TM1637 4Digit Display #2. Data shift 하기 (0) | 2019.03.04 |
【 아두이노모듈#4】 TM1637 4Digit Display #1. Stop Watch만들기 (0) | 2019.02.27 |
【 아두이노 모듈#3】 IR 리모컨으로 3개의 LED 켜기 IR실습 #3 (2) | 2019.02.22 |
【 아두이노 모듈#1】 IR-적외선 모듈( KY-022) 다루기 / 리모컨 #1 (2) | 2019.02.19 |