首页 文章

通过arduino xbeeshield连续通信

提问于
浏览
3

我在计算机端有一个ladyada xbee适配器和一个我试图通过无线通信的arduino xbeeshield . 两个xbe都配置正确,因为我可以从xbeeshield接收数据到计算机 . 但是它不能以其他方式工作,即xbeeshield不会串行回送从计算机发送的字节 . 知道我可能做错了什么吗? (注意:当我使用USB线将arduino板连接到计算机时,echo程序工作得很好 . 这似乎只是在无线模式下出现问题)

处理代码

void setup() {
  Serial.begin(9600); 
}

void loop() {
  if (Serial.available()) {
    Serial.print((char) Serial.read());
    delay(10);
  }
}

我只是从计算机发送按键并等待回复 . 我没有得到任何 .

2 回答

  • 0

    我使用我回答的代码来解决从PC到Xbee / Arduino的串行字节发送问题 . 它已经好几个月了 . 确保您已在PC和Arduino端配置了Xbee模块 . 确保您的PAN ID也一样 .

    Arduino making decision according to a packet received from serial port

    您使用的是什么版本的Xbee模块?我的代码适用于系列1,但也适用于较新的版本 .

  • 0

    尝试使用softwareSerial库并将Tx和Rx连接到引脚4和2.运行以下草图并告诉我发生了什么 . 更改波特率值以匹配您自己的值

    #include <SoftwareSerial.h>
    
    uint8_t pinRx = 2 , pinTx = 4; // the pin on Arduino
    
    long BaudRate = 57600; // Please set your Baudrate. It should match the one in XC-TU
    char GotChar, getData;
    // Xbee SoftwareSerial initialization
    SoftwareSerial xbee(pinRx, pinTx); // RX, TX
    
    void setup() 
    {
      Serial.begin(9600);
      Serial.println( "Welcome to the XBee Communication Test" );
      Serial.print("BaudRate:");
      Serial.println(BaudRate);
      Serial.print(" Rx Pin#");
      Serial.println(pinRx,DEC);
      Serial.print(" Tx Pin#");
      Serial.println(pinTx,DEC);
      // set the data rate for the SoftwareSerial port
      xbee.begin( BaudRate );
      xbee.println("Setup Completed!");
    }
    
    void loop() 
    {
      if (Serial.available()) 
      {
        GotChar = Serial.read();
        xbee.print(GotChar);
        Serial.print(GotChar);
      }
      while (xbee.available()>0)
      {  
        Serial.println("Ohohoh");
        getData = xbee.read();      
        Serial.print(" Received: );
        Serial.print(getData);
        Serial.println();
    
        if(getData == 'a')
        {    
          Serial.println(" sbam");
        }  
        else if(getData == 'b')
        {
          Serial.println(" sbo");
        }
      }  
    }
    

    上传程序并打开串行监视器 . 您是否在计算机上收到“安装完成”消息?如果你从PC发送'a'或'b'到Arduino会怎么样?

相关问题