Lecture de données de plus de série de l'Arduino et XBee

Je vais avoir le suivant:

Deux Arduinos et deux XBees. Je veux envoyer des données à partir de l'une à l'autre. Le XBees communiquer, parce que j'ai le propose test (connecter un XBee avec l'Arduino et l'autre à l'ordinateur, à écrire à partir de l'un, et de regarder l'autre dans l'autre terminal).

Maintenant, je veux envoyer des données de l'un à l'autre:

Ce sont mes deux scripts:

Pour l'envoi (ce qui est testé dans l'ancien test qui envoie toutes les lettres):

#include <SoftwareSerial.h>

SoftwareSerial xbee(2, 3); //RX, TX
char c = 'A';
int  pingPong = 1;

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

    Serial.println( "Arduino started sending bytes via XBee" );

    //Set the data rate for the SoftwareSerial port
    xbee.begin(9600);
}

void loop() {
    //Send character via XBee to other XBee connected to Mac
    //via USB cable.
    xbee.write( c );

    //--- Display the character just sent on console. ---
    Serial.println( c );

    //--- Get the next letter in the alphabet, and reset to ---
    //--- 'A' once we have reached 'Z'.
    c = c + 1;
    if ( c>'Z' )
         c = 'A';

    //--- Switch LED on Arduino board for every character sent---
    if ( pingPong == 0 )
        digitalWrite(13, LOW);
    else
        digitalWrite(13, HIGH);
    pingPong = 1 - pingPong;
    delay( 1000 );
}

Le problème est quand j'ai connecté un Arduino pour recevoir des données à partir de l'autre XBee.

Voici mon code:

#include <SoftwareSerial.h>

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

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

    Serial.println( "Arduino started receiving bytes via XBee" );

    //Set the data rate for the SoftwareSerial port.
    xbee.begin(9600);
}

void loop()  {
    int temp = xbee.read();

    Serial.print("Character received:");
    Serial.println(temp);
    delay(1000);
}

De sortie est toujours:

Character received: -1.

Si je change le temp de int à byte je vois Character received: (a non-[ASCII][3] symbol).

Je suis en utilisant XBee série 1.

Ils sont configurés par le biais de X-CTU, basé sur un tutoriel trouvé sur ladyada.net.

Puis je l'ai connecté le module XBee à un Arduino (TX à la broche 3 RX-2, Vcc et GND, respectivement) et l'autre XBee sur le PC par l'intermédiaire d'un FTDI câble. J'ai été en mesure d'envoyer des caractères de l'Arduino et de les voir dans la série du moniteur de la X-CTU. Est-ce à dire qu'ils sont configurés correctement?

Puis j'ai voulu connecter un Arduino à mon récepteur. Vous pouvez voir le code ci-dessus. Je suis toujours pas de données disponibles.

Retourné -1 signifie qu'il n'y a pas de données dans la série.

Quelle carte Arduino et la version utilisez-vous?
J'ai essayé arduino Uno pour Uno et rduino Uno de micro.

OriginalL'auteur ghostrider | 2013-01-07