티스토리 뷰

<아두이노 적외선 리모콘 신호 입력 받기>

준비물 : 아두이노, IR수신기, 리모콘
IR리모콘을 이용하면 아두이노를 원격제어 할 수 있습니다.
리모콘이 따로 없다면, 집에 있는 안쓰는 에어콘이나 티비 등의 리모콘을 사용하실 수 있습니다.

모듈 형태로 된 수신기는 Vcc ,GND 단자 위치 표기 되어있기 때문에 헷갈릴 일이 드물지만, 작은 수신기 단자의 경우
모델명을 검색하여서 데이터 시트를 확인하시고 연결 하시면 될 것같습니다.

 

 

 


아래의 이미지는 제가 사용한 단자와 데이터 시트입니다.


저 같은 경우에는 아두이노가 아닌 다른 보드의 Vcc를 사용했을 때, 동작을 안했던 적이 있었는데 알고보니 Vcc가 6V 인 보드여서 제대로 동작이 되지 않았던 적이 있습니다. 따라서 데이터 시트를 확인해주시고 사용해주시면 좋을 것 같습니다.


※ 그냥 연결해서 사용하셔도 무방하지만, 혹시라도 고장을 방지하기위해 신호선과 Vcc 사이에 10kΩ 저항으로 연결을 하시고 사용하시는 것도 괜찮습니다.


< 아두이노 예제 코드>

#include <IRremote.h>

int RECV_PIN = 6; // 핀 번호 설정

IRrecv irrecv(RECV_PIN);
decode_results results;


void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}


void loop()
{
  if (irrecv.decode(&results))
  {
    int a = results.value;
    Serial.println(a, HEX); // 신호 값 출력

    if(a == 0x30CF) { Serial.println("1번"); }
    if(a == 0x18E7) { Serial.println("2번"); }
    if(a == 0x7A85) { Serial.println("3번"); }
    if(a == 0x10EF) { Serial.println("4번"); }
    if(a == 0x38C7) { Serial.println("5번"); }
    if(a == 0x5AA5) { Serial.println("6번"); }
    if(a == 0x42BD) { Serial.println("7번"); }
    if(a == 0x4AB5) { Serial.println("8번"); }
    if(a == 0x52AD) { Serial.println("9번"); }
    if(a == 0x6897) { Serial.println("0번"); }

    irrecv.resume(); // Receive the next value
  }
  delay(10);
}

원하시는 핀 번호를 설정하신 후에 업로드하시면 됩니다.


댓글
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함