2 つの Arduino と 2 つの XBee モジュールがあります。モジュールは、Arduino ボードに直接マウントするだけです。1 つの Arduino が情報を送信し、別の Arduino が情報を受信しながら、接続先のコンピューターからのコマンドをリッスンします。シリアル ポート経由で XBee コードを実行したところ、正しく動作しました。
void setup()
{
Serial.begin(9600);
}
void loop()
{
byte x = Serial.read();
if (x != 255)
Serial.println(x);
}
ただし、コードを次のように変更すると、
#include <SoftwareSerial.h>
SoftwareSerial xbee(2,3);
シリアルを XBee に変更すると、すべてが機能しなくなります。何故かはわからない。シリアルポートはコンピューターのCコードと通信しているため、シリアルの使用を避ける必要があるためです。そのため、別のポートを使用して XBee 経由でリッスンしたいと考えています。Rx/Tx で I/O ポートが競合している可能性がありますが、私の Arduino は XBee 以外には接続していません。
セットアップは次のようになります。
| | XBee| <<---------->> XBee
Arduino |||||||||||||||||| Arduino <<---------->> コンピュータ C
使い方はSoftwareSerial
?