如何从任意遥控器读取IR十六进制代码?

问题描述 投票:1回答:2

我已经搜索过Google,找不到与该确切主题相关的文章。

我有几个遥控器,需要在手机上手动输入通用远程应用程序。但是,无论从哪里看,我都无法在线找到这些代码。

没有可以指向遥控器的IR接收器设备,按遥控器上的任何按钮,它会告诉我相应的十六进制代码吗?我不太了解IR技术,但似乎必须存在这样的内容,否则到底像lirc这样的项目如何才能获得所有这些代码?

[如果可能的话,我想知道这种设备的名称,如果存在的话,或者如果不是一般的说明,则该如何构造它。

谢谢!

hex discovery infrared
2个回答
0
投票

您可以获得一个红外接收器组件,并通过一个小型微控制器对其进行读取,以获取正在发送的信号,但是我不知道如何将其转换为十六进制代码。我看到过一些项目,它们只是在需要时才播放信号。

关于使用传感器读取信号的一些参考:

http://learn.adafruit.com/ir-sensor

http://playground.arduino.cc/Code/InfraredReceivers

有一些用于通过PC接收和发送IR的框,但是同样,我不知道它们是否有办法获取您的应用所需的十六进制代码。

http://www.intolect.com/irmandetail.htm


0
投票

这可以很容易地用Arduino和infrared receiver来为您过滤掉任何背景信号

我将红外接收器连接到Arduino上的模拟引脚,并下载了IRremote库以解码红外信号。然后,我将解码后的信号打印到Arduino IDE串行监视器

将下面的代码上传到您的Arduino,并在Arduino仍处于连接状态时打开串行监视器以查看收到的十六进制代码

#include <IRremote.h>

// Create an instance of the object to decode the signal from the IR receiver,
// passing in the value of the analog pin you chose
IRrecv irReceiver(A0);
// Create a container for the decoding result
decode_results result;

void setup()
{
  // Ensure the serial monitor is set to the same frequency you pass into Serial.begin
  // in this case 9600
  Serial.begin(9600);
  irReceiver.enableIRIn();
}

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

© www.soinside.com 2019 - 2024. All rights reserved.