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 i'm not native english, please don't hard language mistakes
here list of devices use :
my work simple : data sent xb2 xb1. xb1 receives data until specific character received, transmit data xb3.
my arduino program (doesn't work) :
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
i lalso able return error xb2 if packet sent doesn't finish "*".
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
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
Post a Comment