1

サイド A:

  • USBで給電されるWireless Protoシールドを備えたArduino Uno R3
  • XBee Pro S1 の場合、DH 0 DL FFFF MY 0 API 0
  • ワイヤレス プロト シールドには、「マイクロ」位置にシリアル選択スイッチがあります。

B面:

  • XCTU ソフトウェアを搭載した PC に接続された XBee Explorer USB
  • XBee Pro S1 の場合、DH 0 DL FFFF MY 0 API 0

(2 台の PC を接続した USB エクスプローラー ボードに両方のXBeeモジュールを配置すると、問題なくデータを送受信できるので、XBee の設定は適切であると思います。)

問題

今、ArduinoにB側からの入力をキャプチャさせたい(XCTUターミナルで送信)のですが、ターミナルに何か入力すると、A側のRSSI LEDが5秒間点灯するだけですが、Arduinoはそうではないようです本来のようにデータを送り返さないため、データをキャプチャします ( Serial.print("I received: ")。

Arduinoスケッチ:

int incomingByte = 0;

void setup() {
    Serial.begin(19200);  //Both XBee chips are configured at 19200 Baud
    Serial.print("start echo machine");  //This is received just fine on the B side
}


void loop() {
    if (Serial.available() > 0) {
        // Read the incoming byte:
        incomingByte = Serial.read();

        // Say what you got:
        Serial.print("I received: ");  //This never shows on the B-side
        Serial.println(incomingByte, DEC);
    }
}

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

XBeeにはSoftwareSerial(RX、TX)を使用し、出力をPCに印刷するにはSerialを使用する必要があります。SoftwareSerial の RX と TX は、ワイヤレス プロト シールド内のモジュールの DOUT および DIN ピンにリンクする必要があります。

#include <SoftwareSerial.h>

// Connect pin 10 of Arduino to DOUT of Wireless Proto shield
uint8_t ssRX = 10;

// Connect pin 11 of Arduino to DIN of Wireless Proto shield
uint8_t ssTX = 11;

SoftwareSerial nss(ssRX, ssTX);

void setup() {
  Serial.begin(19200);
  nss.begin(19200);
  Serial.println("Serial works");
}

void loop() {

  if (nss.available()){
    Serial.println("received packet:");
    for(int i=0;i<25;i++){
      Serial.print(nss.read(),HEX);
      Serial.print(",");
    }
    Serial.println();
   }
于 2013-04-28T13:01:47.023 に答える
0

多くのボードでは、DIN のプルアップ抵抗を有効にする必要があります。一部の情報源によると、このプルアップは Digi Xbee モジュールでデフォルトで有効になっています。

有効になっていることを確認する、または有効にするには:

Xbee モジュールを USB エクスプローラーに置き、X-CTU を使用して PR 構成を確認します。DIN は Xbee Pro S1 のビット 7 にあるため、その場合は最後のビットを 1 にする必要があります。

私はこのように言います: 00000001

それを 16 進数 (私の場合は 01) に変換し、その値を X-CTU を使用して Xbee モジュールに書き込みます。

したがって、これは電子機器の問題であり、プログラミングの問題ではありません。

于 2013-04-29T09:12:50.387 に答える