jetcourage 发表于 2017-4-1 13:33:20

为什么Arduino红外遥控按钮每次读取的编码有所不同?

新手,写的读取红外遥控器按键编码的程序,但是都出来的编码不一样,
请问大神是什么原因呢?
#include<IRremote.h>
int REC_PIN=11;
IRrecv irrecv(REC_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop()
{
if(irrecv.decode(&results))
{
    Serial.println(results.value,HEX);
    delay(500);
    irrecv.resume();
}
}

弘毅 发表于 2017-4-1 14:27:29

jetcourage 发表于 2017-4-1 13:34
这是按下同一个按钮读取的编码

这个感觉是遥控器上单片机程序的问题,好一些的遥控器我记得是不会这样子的。你可以试试其他遥控器。便宜的遥控器按键如果你一直按住,或者按键没有做消抖。就容易出现这种情况。

jetcourage 发表于 2017-4-1 13:34:13

这是按下同一个按钮读取的编码

小猪会轮滑 发表于 2017-4-1 18:14:43

:L我用的1块钱的遥控器也有这个问题

ignore 发表于 2017-4-5 14:13:41

红外头是有角度差的,你对应的角度不同,编码会不同,

maidoo 发表于 2017-4-5 15:40:51

和遥控器无关,是这个库的问题。
这个库在Arduino上的运行优先级不高,定时过程被抢占,导致计时数据不准,解出来的码就不一样。
这个库我也用过,发现误差很大。还是直接用AVR单片机编程(不用arduino系统)准确。
页: [1]
查看完整版本: 为什么Arduino红外遥控按钮每次读取的编码有所不同?