[Arduino] 아두이노 적외선 수신기(IR Receiver) 사용하기
아두이노 적외선 수신기(IR Receiver) 사용하기
적외선 수신기는 적외선 리모컨 or 적외선 송신기에서 보내는 신호를 받는다.
리모컨으로 TV, 에어컨, 선풍기 등 제어하는 것 처럼 사용 할 수 있다.
회로도
적외선 수신기 그림이 이상하긴 하지만 회로도 대로 연결 하면 된다.
(아무리 찾아도 적외선 수신기 그림이 저거 밖에 없다.)
코드 구현
리모컨이 누른 IR 수신 정보를 출력 해준다.
실행이 안되면 <IR.H>를 추가해야한다.
#include <IR.h>//적외선 수신기 사용
#define IR_PIN 13
unsigned long last = millis();
IRrecv irrecv(IR_PIN);
decode_results decResult;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop()
{
if (irrecv.decode(&decResult) == true)
{
Serial.println(decResult.value, HEX);
Serial.println(getDecodetype(decResult.decode_type));
if(millis() - last > 250)
{
last = millis();
irrecv.resume();
}
}
}
String getDecodetype(int type)
{
String szType="Type : ";
switch(type)
{
case NEC: szType.concat("NEC");
break;
case SONY: szType.concat("SONY");
break;
case RC5: szType.concat("RC5");
break;
case RC6: szType.concat("RC6");
break;
case DISH: szType.concat("DISH");
break;
case SHARP: szType.concat("SHARP");
break;
case PANASONIC: szType.concat("PANASONIC");
break;
case JVC: szType.concat("JVC");
break;
case SANYO: szType.concat("SANYO");
break;
case MITSUBISHI: szType.concat("MITSUBISHI");
break;
case SAMSUNG: szType.concat("SAMSUNG");
break;
case LG: szType.concat("LG");
break;
default: szType.concat("Unknown");
break;
}
return szType;
}
댓글
댓글 쓰기