Arduino

[Arduino] 아두이노 적외선 수신기 사용하기

Let it out 2024. 2. 6. 14:19

적외선 수신기(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;
}
반응형