현재 IRremote 라이브러리 동작되는 버전은 V1.0,0, V2.5.0 버전만 동작합니다.
그외 버전은 현재까진 동작하지 않습니다.
참고로 저희가 실습하는 리모콘은 별로 안 좋은거 같습니다.
키 채터링도 많고 접촉도 불안하고 Key 접점도 안 좋습니다.
참고로 리모콘 Key 값은 모델에 따라서, 회사에 따라서 다 다름니다.
이 부분 사용시 주의하시기 바랍니다.
아래는 저희가 사용하는 리모콘 모델 입니다.
#include <IRremote.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
#include "My_Arduino_GPIO_Lib_V1_6.h"
#define Arduino 1
#define HW_Uart_mode 2
#include "My_MCU_Printf_Lib_V2_2.h"
#define IR_Pin A0
//
IRrecv IR(IR_Pin);
decode_results rx_buf;
void setup() {
// put your setup code here, to run once:
pinMode(A0, INPUT);
Serial.begin(115200);
IR.enableIRIn();
}
void loop() {
// put your main code here, to run repeatedly:
// IR 수신 Data
if(IR.decode(&rx_buf) == 1){
if((rx_buf.value == 0xFFFFFFFF) || ((rx_buf.value & 0xFF0000) == 0xFF0000)) goto k1;
Serial.println(rx_buf.value, HEX);
switch(rx_buf.value)
{
// Carmpa 사 리모콘 입니다. = Key Code Data는 리모콘 회사별로 다름니다.
case 0xFF6897: digitalWrite(10, 0); break; // 0번 key = led1 on
case 0xFF30CF: digitalWrite(10, 1); break; // 1번 key = led1 off
case 0xFF18E7: digitalWrite(11, 0); break; // 2번 key = led2 on
case 0xFF7A85: digitalWrite(11, 1); break; // 3번 key = ied2 off
case 0xFF10EF: digitalWrite(12, 0); break; // 4번 key = led3 on
case 0xFF38C7: digitalWrite(12, 1); break; // 5번 key = led3 off
case 0xFF5AA5: break; // 6번
case 0xFF42BD: break; // 7번
case 0xFF4AB5: break; // 8번
case 0xFF52AD: break; // 9번
case 0xFFA25D: break; // CH-
case 0xFF629D: break; // CH
case 0xFFE21D: break; // CH+
case 0xFF22DD: break; // PREV <<
case 0xFF02FD: break; // NEXT >>
case 0xFFC23D: break; // PLAY/PAUSE
case 0xFFE01F: break; // VOL-
case 0xFFA857: break; // VOL+
case 0xFF906F: break; // EQ
case 0xFF9867: break;// 100+
case 0xFFB04F: break;// 200+
}
k1:
IR.resume();
}
delay(300);
}