2

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

4

2 に答える 2