【问题标题】:Arduino Reverse Engineering Sky Remote IR output dataArduino逆向工程天空远程红外输出数据
【发布时间】:2018-05-27 18:31:52
【问题描述】:

项目: 将现有的 Sky 遥控器转换为蓝牙 HID 设备(以控制 PC)

步骤:

  • 移除红外 LED
  • 使用现有的远程电路
  • 解码输出详细信息
  • 将输出转换为键盘按钮按下
  • 使用带有 RN42 固件的蓝牙 HC-05 来实现蓝牙 HID 功能
  • 坐下来用天空遥控器控制电脑:)

问题: 使用现有电路,我想读取控制器发送到 IR LED 的输出值。我不知道该怎么做。

我已将一根电线焊接到 IR LED 的 (+) 正极端子上,并尝试使用以下草图代码读取它:

#include <IRremote.h>

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

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    irrecv.resume(); // Receive the next value
  }
}

我的逻辑是,如果发送到 IR LED 的数据与接收器读取的数据相同,我可以在没有 IR LED / IR 接收器的情况下直接从电路读取该数据。然而这并没有真正奏效,我收到的结果是不规则的。

当我按下按钮时,大部分时间数据都打印在串行监视器上,但是这些数据并不一致。有时,当我按下按钮时,不会打印任何数据。按“右”按钮 5 次的串行监视器结果:

1915173721
1967414055

按其他箭头按钮时的更多结果:

749184133
4255908178
2645846893
3808018029
1874349767
489623152
4272685797
1488398475
2816865927
1510598699
1286666972
881703980
1976667380

我是不是走错了路?我想是的:/

任何建议将不胜感激

谢谢!

【问题讨论】:

  • 你们有共同的GND吗?电压是多少?

标签: arduino reverse-engineering arduino-uno circuit infrared


【解决方案1】:

输出到 IR LED 的信号是用特定载波频率调制的编码脉冲。大多数遥控器的载波频率为 38KHz。但是您仍然可以找到其他载波频率,例如 40KHz 甚至 56KHz。

IR 接收器设计用于接收以特定载波频率调制的 IR 信号。然后接收器将去除载波,只输出编码脉冲。

因此,当您移除 IR LED 并直接读取信号时,您不会获得与从 IR 接收器输出读取相同的结果。

在将信号输入串行阅读器之前,您需要有一些过滤电路来去除载体。

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2011-07-24
    • 2017-05-05
    • 1970-01-01
    • 2023-03-24
    • 2017-02-01
    相关资源
    最近更新 更多