Xbee AT communication : Random data are sent


hi guys ! first let me introduce myself  :) . registered website today , i'm using arduino school project, i'm in charge project communication part , i'm having lot of troubles  :smiley-cry: i'm not native english, please don't hard language mistakes  ;) 

here list of devices use :

  • xbee serie 2 on arduino micro. i'll call xb1
  • xbee serie 2 connected pc using usb. i'll call xb2
  • xbee serie 2 on arduino micro. i'll call xb3
  • i use x-ctu second xbee, , arduino ide 2 xbee on arduino micro.


my work simple : data sent xb2 xb1. xb1 receives data until specific character received, transmit data xb3.

my arduino program (doesn't work) :

code: [select]
int taille;                        // la variable destinée à recevoir le nombre de caractères en attente sur le port série
char buffer[30];                   // le buffer destiné à recevoir les données

void setup()
{
  serial1.begin(9600);             //lance la communication sur le port série 1
  serial.begin(9600);              //lance la communication sur le port série 0
  delay(2000);                     // un simple délai le temps d'afficher le moniteur série avec arduino ide pour pouvoir lire "init ok"
  serial1.println("init ok");      // envoie "init ok" en destination du port série 1, et retourne le curseur à la ligne
}

void loop()
{
  if (serial1.available())                              // si des données sont en attente sur le port série 1
  {
    taille = serial1.readbytesuntil('*',buffer,30);     /* la variable numérique "taille" prends la valeur de tous les bits en attente sur le port série 1
    jusqu'à recevoir le caractère "*" ou 30 caractères, et les bits récupérés sont stockés dans le tableau "buffer[]" */
    serial1.println(buffer);                            // retourne le contenu du tableau "buffer[]" sur le port série 1
    serial1.flush();                                    // attends la fin de l'envoie des données
    serial.println(buffer);                             // envoie le contenu du tableau "buffer[]" sur le port série 0 afin que la donnée soit traitée
    serial.flush();                                     // attends la fin de l'envoie des données
    buffer[taille] = 0;                                 // remets le tableau "buffer[]" à 0
  }
}


comments on side of program here me understand each function does, don't worry if don't understand french, , if do, please correct me if i'm wrong  ;)

if send first packet xb2, let's "test*", xb1 returns xb2 , xb3. after receiving data on serial port 1 many times, starts returning random parts of different last data received. if can me, i've tried different things , nothing worked  :smiley-sad-blue:
i lalso able return error xb2 if packet sent doesn't finish "*".



Arduino Forum > Using Arduino > Networking, Protocols, and Devices (Moderator: fabioc84) > Xbee AT communication : Random data are sent


arduino

Comments