반응형

【 아두이노 모듈#1】 IR-적외선 모듈( KY-022) 다루기 #1


 오늘은 IR-적외선 모듈과 리모컨에 대해 다루어 보려 한다. 

일반적으로 TV나 오디오 등 가전기기 들의 리모컨에 적용하는 방식으로 알아두면 여러가지로 유용하게 응용 할 수 있다.

 




▶ 선수 학습 :

 없음. 


▶ IR-적외선 리모트 모듈 사양 및 동작 특성





  송신부에서는 데이터 값을 가지는 적외선을 약38Khz의 반송(운반) 주파수에 실어서 보내는데(변조),  이는 자연광, 형광등 불빛 등 주변 빛으로 부터 적외선()을 잘 구분하여 수신하기 위함이고 , 송신부에서는 이 반송 주파수를 제거하여(복조) 데이터 값을 얻게 된다.

 송신기에서 사용되는 적외선은 가시광선 바로 위의 영역으로 열 발생이 없는 근적외선을 이용한다.








▶ 실습 목표 :  


1. 리모컨을 눌렀을 때 각 버튼의 Data 값을 시리얼 모니터로 확인해 볼 수 있다. 


2. 이를 통해 일반적으로 사용되는 상용리모컨의 버튼별 data도 알아 낼 수 있다. 


▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)




▶ 실습 절차  : 


1.    위 회로 연결도를 참고하여 부품들을 연결한다
2.    브레드 보드 없이 직접 보드에 연결하여도 무방하다. 
3.   수신 모듈의 전원 연결이 뒤바뀌지 않도록 주의한다.
 

▶ 실습전 준비사항  : 

 1. 코드에 사용된 ' IRremote.h ' 라이브러리를 먼저 다운받아 설치하세요. ( 아래 첨부파일을 다운받고,  아두이노 IDE의 메뉴에서
" 스케치 》라이브러리 포함하기 
》ZIP라이브러리 추가... " 메뉴를 이용해서 추가해 주면 됩니다.
 

▶ 프로그램 코드 및 설명 : 

/* IR-적외선 리모트 모듈 리모콘 xinda 실습   */


#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)) {   //수신된 값이 있다면

    Serial.println(irIn.value, HEX);  // 값을 시리얼창으로 출력

    irDetect.resume();     // 다음 값 받기

   }

   delay(100);     // 100ms 마다 수신 & 수신 에러 방지

// 리모컨 계속 눌림값(FFFFFF)이 수신 되지 않게 하려면 300ms이상으 조절

}   



▶ 실행영상 :  

(전체화면 보기로 보세요)



▶ 아두이노 파일다운 :

irRemote_Serial.ino



반응형