Go Down

Topic: connection Xbee avec deux arduino (Read 953 times) previous topic - next topic

khalil_dz

merci pour les aidées et sa patience ;)


oui,pour envoyer  (6 int) sur une voie série à 115200 bauds prends environ 1ms(760 us),mais pour recevoir ( 4 int) plus de 5ms ,Seulement si tu es utilisé d'autre programme .((regarder mon pro).

tu lis ça ?

Quote
======
You will notice that the examples here do not use any of these Arduino functions
   Serial.parseInt()
   Serial.parseFloat()
   Serial.readBytes()
   Serial.readBytesUntil()

All of these are blocking functions that prevent the Arduino from doing something else until they are satisfied, or until the timeout expires. The examples here do exactly the same job without blocking. That allows the Arduino to do other things while it is waiting for data to arrive
http://forum.arduino.cc/index.php?topic=396450.0
est ce qu'il y a une fonction plus rapide que les autres fonction?

J-M-L

Les fonctions que vous mentionnez attendent un timeout à défaut de marqueur de fin de communication ou de connaissance du nombre d'octets à lire.

La fonction available() elle vous dit s'il ya quelque chose à lire  et la fonction read() va lire l'octet en question le tout en quelques microsecondes.

Si vous voulez comprendre comment bien écouter le port série vous pouvez jeter un oeil à mon petit tuto sur le sujet
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

khalil_dz

Comment as tu envoyé (6 int) et recevoir (4 int)  Dans durée moins de 2ms. (si possible un prog)
comment utuliser la fonction  serial read pour recevoire (4 int) mémé temps.
mercii

khalil_dz


J-M-L

Envoyer 6 octets = utiliser write

Recevoir 4 octets = lire mon tuto sur le port série
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

khalil_dz

Envoyer 12 octets ==>le problème est résolu

Recevoir 8 octets => comment lire  tout  le port série un exemple svp

J-M-L

Mon tuto contient du code... vous avez regardé ?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

khalil_dz

j'ai regardé ça (Ecouter le Port Série ou un keypad (applicable à 1 flux de données asynchrone ).

Je ne trouvais pas ce que je cherchais.
- est ce tu peux donner une solution pour recevoire 4 int.
j'ai changé le programme mais chaque fois donne une décalage sur moniteur serie
Code: [Select]
String indata;
int var1;
void setup() {
    Serial.begin(9600);
    Serial.println("Serial_conection...");
}
void loop() {
        while (Serial.available() == 0 ){}
        while (Serial.available() > 0)
        {
 //        for(int i = 0; i < 2;i++){
         char recieved = Serial.read();
          indata += recieved;
        // Process message when new line character is recieved
        if (recieved == '\n'){     //break;  // exit the while(1), we're done receiving
           // var1 = inData.toInt();
           Serial.print("number1= ");
           Serial.print(indata);
              indata = "";      // Clear recieved buffer
         }
         }
}

J-M-L

#23
Feb 01, 2019, 07:17 am Last Edit: Feb 01, 2019, 07:17 am by J-M-L
Si vous envoyez les int en ASCII c'est plus 2 octets par entier qu'il faut compter et comme expliqué dans le tuto il vous faut des séparateurs (début et/ou fin de message). Contrôlet vous l'emetteur Et le format ?

Faire
Code: [Select]
while (Serial.available() == 0 ){}en début de loop() ne sert à rien, vous ne rentrerez juste pas dans l'autre while s'il n'a rien dans le buffer d'entree série

Mon tuto explique pourquoi c'est pas une bonne idée d'utiliser la classe String, pourquoi le faites vous ?

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

khalil_dz

mercii ,le problème est résolu  ;)

Go Up