3

オプティマイズのKen Shirriff Arduino ライブラリを使用して IR コードをデコードするのに長い時間がかかりました。コードを少し修正して、Samsung エアコン (MH026FB) の 56 ビット信号をダンプできるようにしました。

私の作業の結果は、Google ドキュメント ドキュメントSamsung MH026FB AirCon IR Codes Dumpにあります。

これは、ダンプされたすべての値と結果の解釈を含むスプレッドシートです。私の知る限り、エアコンユニットは、コマンドに応じて、56ビットデータの2つまたは3つの「バースト」を送信します。エアコンの温度、ファン、機能、その他のオプションがどこにあるかを把握して、ビットを適切にデコードすることができました。

私が抱えている問題は、チェックサムに関連しています。これらすべての 7 バイト コードで、2 番目のコードは後半の 5 バイトから何らかの形で計算されます。たとえば、次のようになります。

BF B2 0F FF FF FF F0   (lead-in code)
7F B8 8A 71 F6 4F F0   (auto mode - 25 degrees)
7F B2 80 71 7A 4F F0   (auto mode - 26 degrees)
7F B4 80 71 FA 7D F0   (heat mode - 26 degrees - fan auto)

実行時に IR コードを再作成するため、これらのコードのチェックサムを計算できる必要があります。

多くの標準的なチェックサム アルゴリズムを試してみましたが、意味のある結果は得られませんでした。チェックサムは、残りのコード (3 から 7 までのバイト) のゼロの数に関連しているようですが、どうすればよいかわかりません。

この問題の解決策はありますか?

4

4 に答える 4

3

ケン・シリフはこれを整理しました。アルゴリズムは次のとおりです。

  1. #2(チェックサム)を除くすべてのバイトの1ビット数をカウントします
  2. カウントmod15を計算します。値が0の場合は、代わりに15を使用してください。
  3. 2から値を取り、4ビットを反転し、4ビットを反転ます。
  4. チェックサムはBnです。ここで、nは前のステップの値です。

彼の賢さと鋭さに対する彼へのお祝い。

于 2012-08-13T08:35:26.433 に答える
1

ビット順序 inbytes/packets0/1が適切に解釈されると (アルゴリズムから、両方が逆になっているように見えます)、アルゴリズムはsum of 0 bits modulo 15.

于 2014-05-11T16:05:59.120 に答える