2014-05-24 6 views
0

나는 내 xBee S1 Pro 모듈과 함께 정말 이상한 문제가 있습니다. XCTU 소프트웨어를 사용하여 구성했습니다. 나는 하나의 Arduino가 데이터를 보내고 다른 하나는 전송하도록 설정했습니다. XCTU 소프트웨어를 사용하여 일부 테스트 프레임을 보내면 작동하며 수신자는 데이터를 가져옵니다. 하지만 내 arduinos 의사 소통을 원한다면 일을 dosent. PC -> Arduino가 작동하기 때문에 모듈이 올바른 방식으로 구성되어 있다고 가정합니다. 당신이 말해 줄 수 있도록 잘못된xBee 통신 Arduino to Arduino

reciver입니다

void setup() 
{ 
    pinMode(13, OUTPUT); 
    Serial.begin(9600); 
} 

void loop() 
{ 
    if(Serial.available() > 0){ 
    digitalWrite(13, HIGH); 
    delay(500); 
    digitalWrite(13, LOW); 
    Serial.print("recived some data: "); 
    Serial.println(Serial.read()); 
    Serial.flush(); 
    } 
} 

지금은 보낸 사람

void setup() 
{ 
    pinMode(13, OUTPUT); 
    Serial.begin(9600); 
} 

void loop() 
{ 
    Serial.println("data"); 
    Serial.flush(); 
    digitalWrite(13, HIGH); 
    delay(1000); 
    digitalWrite(13, LOW); 
    delay(4000); 
} 

무슨 잘못가는 뭐죠 그래서 스케치를 제공 할 것입니다? 어떤 아이디어?

답변

0

XBee 및 USB와 통신하는 데 동일한 직렬 포트를 사용하고 있습니다. 그것이 문제이다. XBee와 통신하기 위해 USB 대신에 다른 직렬 포트를 설정해야합니다.

사용중인 arduino 보드와 방패를 공유하면 좋을 것입니다.

1

RX가 실제로 DOUT에 연결되어 있고 TX가 DIN에 연결되어 있는지 확인합니다. 또한 실제 "프레임"을 보내는 경우 API 모드에서 xbees를 실행하는 것처럼 들리므로 더 많은 작업을 수행해야합니다. 원하는 "데이터"를 보내야 직렬 패스 모드로 실행됩니다.

마지막으로 확인해야 할 점은 arduino Leonardo 또는 Micro 하드웨어 직렬 포트가 Serial1이 아닌 Serial1인지 확인하는 것입니다.

0

첫 번째 것은 처음입니다.이 xBee가 다른 전송 속도로 별도의 암호를 사용하면 똥이 발생합니다. 또한 (AT 또는 API)에 어떤 명령 모드가 있습니까? 공장 출하시 기본 설정은 무엇입니까? 이것을 바꾸기 위해 AT 명령을 수락 하시겠습니까? (기본적으로 AT 모드에 있음)

OS X 용으로 coolTerm을 사용하는 직렬 프로그램을 엽니 다. 이 단계를 올바르게 설정하십시오.

이 송신기가 동일한 보드, 패스 코드 등에서 통화하고 있음을 알게되면 간단한 직렬 읽기 및 쓰기로이 송신기를 RX/TX 핀에 연결하기 전에 Arduinos에 코드를 업로드해야합니다.

0

코드가 올바르지 만 보낼 의도가 있는지 확인하십시오. Xbees는 8 비트 데이터 만 송수신 할 수 있습니다. 먼저 a = 100과 같이 알려진 바이트의 데이터를 보냅니다. 이 데이터가 완벽하게 수신되는지 여부를 확인하십시오.