私は espressif esp32 devkit v1 ボードを使用しており、ユニバーサル IR リモートを作成しようとしています。IRremote ライブラリ ( https://github.com/Arduino-IRremote/Arduino-IRremote ) を使用しています。(TSOP38238 を使用して) 生の IR データを収集するために ReceiveDump の例を実行しているときに、#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 の値に応答しません。
だからここに私の質問があります:
- MARK_EXCESS_MICROS とは何ですか? なぜ必要なのですか?
- デバイスが異なれば、MARK_EXCESS_MICROS の値も異なりますか?
- この値を効率的かつ効果的に使用するにはどうすればよいですか?