공부/아두이노
[아두이노] IR 적외선 리모컨 수신 데이터 0xFFFFFFFF 해결법
이니셜P
2023. 11. 8. 02:19
반응형
#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를 반환 하게된다. 이를 해결하기 위해 원시 데이터를 직접 출력하여 해결할 수 있다.
반응형