반응형
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

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

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
}

FFFFFFFF 출력으로 문제된 대부분의 사람들이 위와 같은 예제 소스코드로 테스트를 했을 것이다.

 

그리고 IR 수신회로를 구성하여 리모컨을 눌렀을 때 위와 같이 FFFFFFFF의 데이터만 수신 했을것이다.

 

#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);

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

void loop() {
  if (irrecv.decode()) {
    Serial.println(irrecv.decodedIRData.decodedRawData, HEX);
    irrecv.resume();
  }
}

소스코드를 위와 같이 수정하여 업로드 해보자

 

값이 제대로 출력되는 것을 확인할 수 있다.

 

수신된 데이터를 식별할 수 없는 상태에서 decode 함수에 인자 값이 전달되면 FFFFFFFF를 반환 하게된다. 이를 해결하기 위해 원시 데이터를 직접 출력하여 해결할 수 있다.

반응형

+ Recent posts