반응형

【 아두이노 모듈#3】 IR 리모컨으로 3개의 LED 켜기 IR실습 #3



 오늘은 지난 시간 다루었던 IR-적외선 모듈과 리모컨 편의 3편으로 다루어 보려 한다. 

 지난시간에는 IR모듈만 연결하여 리모컨을 눌렀을 때의 데이터를 사람이 알아보기 쉬운 의미있는 값으로 바꾸어 시리얼 모니터로 출력해 보았다. 이번에는 이 값들을 가지고 특정키가 눌러 졌을 때 아두이노 출력 포트를 제어하여 LED를 켜보도록 하자, 물론 간편한 예로 LED를 다루지만 모터제어나 여러가지 제어가 가능하다는 걸 이해하면 좋을 것이다. 


▶ 선수 학습 :

 

1. (모듈#1) IR-적외선모듈( KY-022)다루기#1 (적외선리모컨참고) 강좌클릭

2. (모듈#2) IR-적외선모듈( KY-022)다루기#2 (적외선리모컨참고) 강좌클릭



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







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

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



▶ 실습 목표 :  


 - 리모컨의 숫자 키(1, 2, 3)를 눌렀을 때 , 각각의 LED 1초 가량 ON Off 되도록 프로그래밍 하라.  (아래 Key Value 값 참조)


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



▶ 실습 절차  : 


1.   회로 도면을 보면서 부품들을 연결한다.

2.   LED의 극성이나, 전원 단자 +, - 서로 바뀌지 않도록 주의한다.

3.   여기서는 LED 3개를 사용 하였으나 3LED 1개를 사용하여도 무방하니 부품이 있을 경우 추가적으로 실험 해보도록 한다.
 

▶ 프로그램 코드 및 설명 : 


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

/* 숫자 키로 LED 켜기, Rasino.tistory.com, Alex KIM   */    


#include<IRremote.h>

#define IR_KEY_1 0xFF6897

#define IR_KEY_2 0xFF9867

#define IR_KEY_3 0xFFB04F

int IRPIN = 7;

int LED1 = 8;      //  흰색 LED

int LED2 = 9;      //  파란색 LED

int LED3 = 10;    //   빨간색 LED


IRrecv irDetect(IRPIN); // 'irDetect'라는 이름으로 수신객체 생성

decode_results irIn//값 저장 되는 클래스객체(decode_res...)의 이름(irln)선언


void setup( ) {

  Serial.begin(9600);

  irDetect.enableIRIn();  // 수신 시작

  pinMode(LED1, OUTPUT);     

  pinMode(LED2, OUTPUT);

  pinMode(LED3, OUTPUT); 

}


void loop( ) {

  if (irDetect.decode(&irIn)) {  //수신된 값이 있다면 아래 실행

    decodeIR();              // 값을 출력하는 서브루틴 호출

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

   }

}


void decodeIR( ) {           //  값을 출력하는 서브함수 제작

switch(irIn.value) {

case IR_KEY_1:

  digitalWrite(LED1, HIGH);

  delay(2000);

      digitalWrite(LED1, LOW);      

  break;

 

case IR_KEY_2:

  digitalWrite(LED2, HIGH);

  delay(2000);

  digitalWrite(LED2, LOW);      

  break;


  case IR_KEY_3:

  digitalWrite(LED3, HIGH);

  delay(2000);

      digitalWrite(LED3, LOW);    

  break; 

 }

}


['Xinda' 리모콘의 키 값 참조] 



▶ 실행영상 :  

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



▶ 아두이노 파일다운 :

irRemote_LED.ino


반응형
반응형

【 아두이노 모듈#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 구문을 이용하여 리모컨 버튼 각각의 데이터 값을 사람이 판독하기 쉬운 단어로 바꾸어 시리얼 모니터로 출력 할 수 있다. 


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





▶ 실습 절차  : 


1.    위 회로 연결도를 참고하여 부품들을 연결한다
2.    브레드 보드 없이 직접 보드에 연결하여도 무방하다. 
3.   수신 모듈의 전원 연결이 뒤바뀌지 않도록 주의한다.
4. 리모컨의 키값은 선수학습편의 프로그램으로 키를 직접눌러 알아낼 수 있으며, 아래 키코드표를 참고하여 프로그램을 작성하면 된다. (가지고 있는 리모콘이 사진상에 있는 'Xinda'리모콘이라면 모두 같은 값을 가질 것이다)
 

▶ 프로그램 코드 및 설명 : 


/* 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' 리모콘의 키 값 참조] 



▶ 실행영상 :  

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



▶ 아두이노 파일다운 :

irRemote_Serial_Value.ino



반응형