极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22422|回复: 5

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

[复制链接]
发表于 2017-4-1 13:33:20 | 显示全部楼层 |阅读模式
新手,写的读取红外遥控器按键编码的程序,但是都出来的编码不一样,
请问大神是什么原因呢?
  1. #include<IRremote.h>
  2. int REC_PIN=11;
  3. IRrecv irrecv(REC_PIN);
  4. decode_results results;
  5. void setup()
  6. {
  7.   Serial.begin(9600);
  8.   irrecv.enableIRIn();
  9. }
  10. void loop()
  11. {
  12.   if(irrecv.decode(&results))
  13.   {
  14.     Serial.println(results.value,HEX);
  15.     delay(500);
  16.     irrecv.resume();
  17.   }
  18. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2017-4-1 14:27:29 | 显示全部楼层
jetcourage 发表于 2017-4-1 13:34
这是按下同一个按钮读取的编码

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

使用道具 举报

 楼主| 发表于 2017-4-1 13:34:13 | 显示全部楼层
这是按下同一个按钮读取的编码
回复 支持 反对

使用道具 举报

发表于 2017-4-1 18:14:43 | 显示全部楼层
我用的1块钱的遥控器也有这个问题
回复 支持 反对

使用道具 举报

发表于 2017-4-5 14:13:41 | 显示全部楼层
红外头是有角度差的,你对应的角度不同,编码会不同,
回复 支持 反对

使用道具 举报

发表于 2017-4-5 15:40:51 | 显示全部楼层
和遥控器无关,是这个库的问题。
这个库在Arduino上的运行优先级不高,定时过程被抢占,导致计时数据不准,解出来的码就不一样。
这个库我也用过,发现误差很大。还是直接用AVR单片机编程(不用arduino系统)准确。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 20:06 , Processed in 0.059892 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表