티스토리 뷰
<아두이노 적외선 리모콘 신호 입력 받기>
준비물 : 아두이노, 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);
}
원하시는 핀 번호를 설정하신 후에 업로드하시면 됩니다.
'Arduino' 카테고리의 다른 글
[파이썬 → 아두이노] 시리얼 통신으로 문자열 보내는 방법 (3) | 2018.10.20 |
---|---|
[아두이노 → 파이썬] 시리얼 통신으로 문자열 보내는 방법 (0) | 2018.10.18 |
댓글