본문 바로가기

메이커 이야기/아두이노

[아두이노] 리모컨 IR 수신기 활용

반응형

○ 아두이노 IR 리모컨 수신기 활용

적외선 통신 IR (Infrared Ray Communication)??

  ■ 적외선 통신

적외선 통신은 우리 일상생활에서 아주 많이 사용되어지고 있는 것이죠.
주로, TV, 에어컨, IPTV를 위한 셋톱박스에도 많이 사용되고 있습니다. 이러한 가전제품들을 컨트롤 하는 방식이 모두 적외선 통신인데요.
각 브랜드마다 고유의 값을 지니고 있어, 중복되지 않고 컨트롤을 할 수 있습니다. 전자기파를 이용한 통신방식이라 생각하시면 됩니다~!

적외선 통신의 특징으로는
 1. 근거리 통신용
 2. 주파수 : 38kHz
 3. 긴파장으로 인하여 공기중에 통신이 원활히 잘 일어남.

  ■ IR Receiver 를 활용하여 IR 값 읽어 내기

이번에는 아두이노를 활용해서 IR Receiver를 사용해 보려합니다. 
IR Receiver역시 라이브러리가 잘 구축이 되어 있어 누구나 쉽게 리모컨의 값을 전달 받을 수 있습니다. 아래 있는 사진이 IR Receiver 네요~!


  ■ 회로연결 및 사용

IR 리시버는 다음과 같이 연결을 해주시면 됩니다. 10k옴 저항을 달아서 안정적으로 센싱을 받기 위함입니다.

  ■ 아두이노 코딩

메뉴 >>  예제 >> IRremote >> IRrevDemo를 선택해서 예제를 활용해보자~!

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}


Serial 모니터를 활용해서 한번 값을 확인해보면, 내 리모컨이 누른 고유값을 확인 할 수 있다.


13EFBF14의 값이 나온것을 보면, HEX값으로 Rev받은 값을 볼 수가 있으며,

 앞 네 자리 0x13EF는 커스텀 코드이며 리모컨의 ID,  그다음 두 자리(0xFB)는 실제 버튼 값이고 마지막 두 자리(0x14)는 버튼 값의 반전 값이 이다.


이제 해당 값을 가지고 다양한 아두이노 제어를 할 수 있다!! 

반응형