2013-05-25 4 views
0

두 개의 Arduinos 사이에 두 개의 XBee 모듈과 XBee shield을 사용하여 간단한 무선 연결을 설정하려고합니다.XBee Arduino와의 통신

ATID 2001 
ATDL 4079D623 
ATDH 0013A200 

나는 다음 두 아두 이노 플랫폼에 간단한 코드를 업로드

ATID 2001 
ATDL 4079D621 
ATDH 0013A200 

와 최종 장치

내가와 코디네이터를 구성합니다. 최종 장치에서 :

#include <SoftwareSerial.h> 

SoftwareSerial xbee(2, 3); // RX, TX 

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

void loop() { 
    xbee.write("A"); 
    delay(500); 
} 

와 코디네이터에 :

#include <SoftwareSerial.h> 

SoftwareSerial xbee(2, 3); // RX, TX 

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

void loop() { 
    Serial.write(xbee.read()); 
    delay(500); 
} 

그러나 데이터가 코디네이터로 최종 장치에서 통과되지 않습니다. 나는 명백한 것을 놓치고 있는가?

+0

자세한 정보를 제공해주십시오. 어떤 Arduino 버전으로 작업하고 있습니까? Xbee 방패의 버전은 무엇입니까? – djf

+0

안녕하세요, 저는 Arduino UNO를 사용하고 있습니다. 또한 Xbee 방패를 사용하지만 버전 번호는 어디에서 찾을 수 있습니까? – lbedogni

+0

수신자 측에서 직렬 콘솔에 출력되는 내용은 무엇입니까? 또한 [이 스레드] (http://forum.arduino.cc/index.php/topic,28560.0.html)를 확인하십시오. Arduino UNO의 SoftwareSerial에서 57600bps의 문제가있는 것으로 보입니다. Xbee에 또 다른 속도를 시도 했습니까? – djf

답변

0

저는 대학 이래로 Zigbees와 함께 일한 적이 없지만 귀하의 주소 지정 방식이 혼재했을 수도 있습니다. 로컬 주소 지정이 있고 전역 주소 지정이 있습니다. 로컬 주소 지정의 경우 ATDH를 0으로 설정해야합니다. ATID, ATMY, ATDL 만 지정하면됩니다. 반면 글로벌 주소 지정을 사용하는 경우 ATID, ATDL ATDH를 지정해야합니다.

이 스레드를 참조하십시오. explaining how to connect to XBee modules over at electronics.stackexchange.

+0

자습서를 따라했지만 ATMY로 주소를 변경하려고 할 때마다 오류가 발생합니다. – lbedogni

+0

ATMY를 설정할 수 없습니다. 읽기 전용입니다. 첫 번째 XBee의 ATDH 및 ATDL을 두 번째 XBee의 ATSH 및 ATSL 값으로 설정하고 그 반대로 설정하십시오. 지름길로, 라우터에서 ATDH와 ATDL을 모두 0으로 설정하여 라디오를 코디네이터에게 보낼 수 있습니다. 두 XBee 모듈에서 ATBD를 3 (9600 baud)으로 설정하고 9600 보 (baud)로 직렬 포트를 열어 제대로 작동하는지 확인하십시오. – tomlogic

+0

ATDH는 항상 xbees의 0013A200입니다. 문제는 SC-Scan 채널에 있다고 생각합니다. – MAZux