Xbee example code

Hey friends!,
I am new to zigbee… tried to run the sample code but it is not working… Please help…
code for transmitter
/**

  • Copyright (c) 2009 Andrew Rapp. All rights reserved.
  • This file is part of XBee-Arduino.
  • XBee-Arduino is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • XBee-Arduino is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with XBee-Arduino. If not, see http://www.gnu.org/licenses/.
    */

#include <XBee.h>

/*
This example is for Series 2 XBee
Sends a ZB TX request with the value of analogRead(pin5) and checks the status response for success
*/

// create the XBee object
XBee xbee = XBee();

uint8_t payload = { 0, 0 };

// SH + SL Address of receiving XBee
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x403e0f30);
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));
ZBTxStatusResponse txStatus = ZBTxStatusResponse();

int pin5 = 0;

int statusLed = 13;
int errorLed = 13;

void flashLed(int pin, int times, int wait) {

for (int i = 0; i < times; i++) {
digitalWrite(pin, HIGH);
delay(wait);
digitalWrite(pin, LOW);

if (i + 1 < times) {
delay(wait);
}
}
}

void setup() {
pinMode(statusLed, OUTPUT);
pinMode(errorLed, OUTPUT);

Serial.begin(9600);
xbee.setSerial(Serial);
}

void loop() {
// break down 10-bit reading into two bytes and place in payload
pin5 = analogRead(5);
payload[0] = pin5 >> 8 & 0xff;
payload[1] = pin5 & 0xff;

xbee.send(zbTx);

// flash TX indicator
flashLed(statusLed, 1, 100);

// after sending a tx request, we expect a status response
// wait up to half second for the status response
if (xbee.readPacket(500)) {
// got a response!

// should be a znet tx status
if (xbee.getResponse().getApiId() == ZB_TX_STATUS_RESPONSE) {
xbee.getResponse().getZBTxStatusResponse(txStatus);

// get the delivery status, the fifth byte
if (txStatus.getDeliveryStatus() == SUCCESS) {
// success. time to celebrate
flashLed(statusLed, 5, 50);
} else {
// the remote XBee did not receive our packet. is it powered on?
flashLed(errorLed, 3, 500);
}
}
} else if (xbee.getResponse().isError()) {
//nss.print("Error reading packet. Error code: ");
//nss.println(xbee.getResponse().getErrorCode());
} else {
// local XBee did not provide a timely TX Status Response – should not happen
flashLed(errorLed, 2, 50);
}

delay(1000);
}

code for receiver
/**

  • Copyright (c) 2009 Andrew Rapp. All rights reserved.
  • This file is part of XBee-Arduino.
  • XBee-Arduino is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • XBee-Arduino is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with XBee-Arduino. If not, see http://www.gnu.org/licenses/.
    */

#include <XBee.h>

/*
This example is for Series 2 XBee
Receives a ZB RX packet and sets a PWM value based on packet data.
Error led is flashed if an unexpected packet is received
*/

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
// create reusable response objects for responses we expect to handle
ZBRxResponse rx = ZBRxResponse();
ModemStatusResponse msr = ModemStatusResponse();

int statusLed = 13;
int errorLed = 13;
int dataLed = 13;

void flashLed(int pin, int times, int wait) {

for (int i = 0; i < times; i++) {
digitalWrite(pin, HIGH);
delay(wait);
digitalWrite(pin, LOW);

if (i + 1 < times) {
delay(wait);
}
}
}

void setup() {
pinMode(statusLed, OUTPUT);
pinMode(errorLed, OUTPUT);
pinMode(dataLed, OUTPUT);

// start serial
Serial.begin(9600);
xbee.begin(Serial);

flashLed(statusLed, 3, 50);
}

// continuously reads packets, looking for ZB Receive or Modem Status
void loop() {

xbee.readPacket();

if (xbee.getResponse().isAvailable()) {
// got something

if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
// got a zb rx packet

// now fill our zb rx class
xbee.getResponse().getZBRxResponse(rx);

if (rx.getOption() == ZB_PACKET_ACKNOWLEDGED) {
// the sender got an ACK
flashLed(statusLed, 10, 10);
} else {
// we got it (obviously) but sender didn’t get an ACK
flashLed(errorLed, 2, 20);
}
// set dataLed PWM to value of the first byte in the data
analogWrite(dataLed, rx.getData(0));
} else if (xbee.getResponse().getApiId() == MODEM_STATUS_RESPONSE) {
xbee.getResponse().getModemStatusResponse(msr);
// the local XBee sends this response on certain events, like association/dissociation

if (msr.getStatus() == ASSOCIATED) {
// yay this is great. flash led
flashLed(statusLed, 10, 10);
} else if (msr.getStatus() == DISASSOCIATED) {
// this is awful… flash led to show our discontent
flashLed(errorLed, 10, 10);
} else {
// another status
flashLed(statusLed, 5, 10);
}
} else {
// not something we were expecting
flashLed(errorLed, 1, 25);
}
} else if (xbee.getResponse().isError()) {
//nss.print("Error reading packet. Error code: ");
//nss.println(xbee.getResponse().getErrorCode());
}
}

I am using series 2 zigbee and zigbee shield with arduino UNO.

I am new to zigbee... tried to run the sample code but it is not working...

Not properly posted, either.

Where is your debug output?

I am using series 2 zigbee and zigbee shield with arduino UNO.

Which shields? What have you done to configure the XBees?

I am not getting any output... the LED intensity does not change.... The shields that I am using are from rhydolabz....http://www.rhydolabz.com/index.php?main_page=product_info&cPath=152_151&products_id=1124....

I have used X-CTU software for configuring zigbees using a zigbee explorer board(USB)... tried to send a one byte data serially and received it on other UNO board... but this example programme does not work....I changed the destination address, PAN ID and Network ID using XCTU... is this programme in API mode??.....

basically what i want to know is that what changes do I have to make in the code to send a frame from one zigbee to another and how do I configure it on XCTU? Thanks in advance

If you are using series 1 you can try out the Tx and Rx sketches I posted here: http://arduino.cc/forum/index.php/topic,157949.msg1183094.html#msg1183094

I also included the xctu configs for both xbees.

hi i have a bluetooth bee and arduino uno , and an xbee shield .. i need to use an android phone to control a led to turn off and on .. so plzz i need ur help .. and the problem is that i need my bluetooth to transform bluetooth msg to serial ,, i think it need a code ,, do u have any i dea.. thnk u

moeabok: hi i have a bluetooth bee and arduino uno , and an xbee shield .. i need to use an android phone to control a led to turn off and on .. so plzz i need ur help .. and the problem is that i need my bluetooth to transform bluetooth msg to serial ,, i think it need a code ,, do u have any i dea.. thnk u

For starters I would start a new forum post then do some research on your problem and give a lot more details about what you have done so far and what problems you are having. It always helps to post your code and errors when that applies. Your request is really too vague for anyone to help.

I'm working on two s1 zigbee (Series 1) with arduino uno card I sought the programming code each XBee Module (module for transmit and one for receive) I am using series 1 zigbee and zigbee shield with arduino UNO.