首页 > 解决方案 > IRremote 库中的 MARK_EXCESS_MICROS 是什么?

问题描述

我正在使用 espressif esp32 devkit v1 板,并正在尝试创建一个通用红外遥控器。我正在使用 IRremote 库(https://github.com/Arduino-IRremote/Arduino-IRremote)。在运行 ReceiveDump 示例收集原始 IR 数据(使用 TSOP38238)时,我遇到了#define MARK_EXCESS_MICROS 20. 该示例打印一个使用 MARK_EXESS_MICROS “补偿”的数组,如下所示:

Serial.print(F("Result as internal ticks (50 us) array - compensated with MARK_EXCESS_MICROS="));
Serial.println(MARK_EXCESS_MICROS);
IrReceiver.compensateAndPrintIRResultAsCArray(&Serial, false);
Serial.print(F("Result as microseconds array - compensated with MARK_EXCESS_MICROS="));
Serial.println(MARK_EXCESS_MICROS);
IrReceiver.compensateAndPrintIRResultAsCArray(&Serial, true);

稍后,当我发送存储的 IR 代码(使用 IR LED)时,我的电视仅在 MARK_EXCESS_MICROS 为 0 时响应(打开/关闭),但我的 AC 不响应任何 MARK_EXCESS_MICROS 值。

所以这是我的问题:

  1. MARK_EXCESS_MICROS 是什么,我们为什么需要它?
  2. 不同的设备是否需要不同的 MARK_EXCESS_MICROS 值?
  3. 我如何有效地使用这个值?

标签: arduinoesp32arduino-esp8266arduino-esp32

解决方案


推荐阅读