0

赤外線経由でバイナリを使用してメッセージを送信するときにエラーが発生しないようにするための最良の方法は何でしょうか。現在、メッセージをバイナリASCII値にエンコードして送信し、赤外線ライトとセンサーを備えた2つのArduinoを使用して、開始ビットライトをチェックし、赤外線ライトが3ミリ秒間隔でオンまたはオフになっているかどうかをチェックしてメッセージを読み取ります。

何が起こっても(つまり、リモートまたは他のArduinoからの干渉)、正しいメッセージが送信されるようにする必要があります。

また、両方の Arduino が同時にメッセージを送信しようとしても、お互いにメッセージを受信できるようにしたいと考えています。

Arduino IDE のシリアル モニターを介してメッセージを送受信しています。

PS: 一度にたくさんの手紙を送信すると、特定の文字数の後にごちゃごちゃし始めるという問題が発生しています。つまり、数字の間にスペースを入れて 1 ~ 30 と入力すると、1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 14 15 a s ....17 を超えると数字がごちゃごちゃになってしまいます。

問題が何であるかについて何か考えがあれば、私は非常に感謝しています!

4

1 に答える 1

0

IR でエラーをゼロにするのは難しいでしょう。問題は、まばたきを 1 回逃すと、すべてずれてしまい、おかしくなることです。arduinoは並列処理を行わないため、一度に2つ送信することも困難です。

別のプロトコルをお勧めします。IRは多くの情報には適していません。ワイヤレスが必要ない場合、シリアルは非常に簡単です。必要な場合は、2 つの blueSMIRF などの Bluetooth を使用します。いずれかをマスターとして設定する必要がありますが、それはシリアル通信と同じです。

グーグルで調べてみてください。しかし、IR はメッセージ全体ではうまくいかないと思います。数字は 1 つまたは 2 つですが、文全体などではうまくいきません。

試してみるべきことの 1 つは、メッセージを 2 回または 3 回送信し、それらが同じかどうかを比較することです。はいの場合は正しい可能性がありますが、異なる場合は再送信をリクエストできます。

可能であれば速度を落とし、より長いパルスと一時停止を使用することもできます。これにより、登録する時間が長くなり、より正確になるはずです。

幸運を!

于 2012-11-22T04:52:05.627 に答える