Pages: [1]   Go Down
Author Topic: Xbee communication  (Read 778 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

j'ai un problème avec mes xbee's, je m'explique:

Sur le module 1, j'ai 2 boutons, chaque bouton correspond à une lettre qui sera envoyé
Sur le module 2,j'ai 2 leds
Si j'appuie sur le bouton 1, 'a' est envoyé, la Led s'allume génial
Si j'appuie sur le bouton 2, 'b' est envoyé, le Led ne s'allume pas....
Il faut que j'appuie sur les 2 boutons en meme temps pour que sa s'allume en clignotement .....


Quelqu'un aurait une idée de comment je pourrais régler ce problème ???

Merci d'avance
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Peut être commencer par donner plus de détails, câblage et configuration des XBee ?
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Module 1
Code:
int BUTD = 2;                        //attribute une patte à un bouton
int BUTH = 3;
int BUTB = 4;
int BUTG = 5;
int val = 0;   
byte val2 = 0;
void setup(){
  pinMode(BUTD, INPUT);               //déclare le type entrée ou sortie
  pinMode(BUTH, INPUT);
  pinMode(BUTB, INPUT);
  pinMode(BUTG, INPUT);
  Serial.begin(9600);
}
void loop(){
  val = analogRead(A0);               //lit la valeur du potentiomètre
  val2 =map(val, 0, 1023, 0, 255);    //change le code de l'information de int en byte
  if(val2 >= 10 && val2 < 92){        //1ère vitesse + direction
    if(digitalRead(BUTH) == HIGH){
      Serial.print('A');
      delay(10);
    }
    if(digitalRead(BUTB) == HIGH){
      Serial.print('B');
      delay(10);
    }
    if(digitalRead(BUTD) == HIGH){
      Serial.print('C');
      delay(10);
    }
    if(digitalRead(BUTG) == HIGH){
      Serial.print('D');
      delay(10);
    }
  }
  if(val2 >= 92 && val2 < 174){       //2ème vitesse + direction
    if(digitalRead(BUTH) == HIGH){
      Serial.print('E');
      delay(10);
    }
    if(digitalRead(BUTB) == HIGH){
      Serial.print('F');
      delay(10);
    }
    if(digitalRead(BUTD) == HIGH){
      Serial.print('G');
      delay(10);
    }
    if(digitalRead(BUTG) == HIGH){
      Serial.print('H');
      delay(10);
    }
  }
  if(val2 >= 174 && val2 < 255){      //3ème vitesse + direction
    if(digitalRead(BUTH) == HIGH){
      Serial.print('I');
      delay(10);
    }
    if(digitalRead(BUTB) == HIGH){
      Serial.print('J');
      delay(10);
    }
    if(digitalRead(BUTD) == HIGH){
      Serial.print('K');
      delay(10);
    }
    if(digitalRead(BUTG) == HIGH){
      Serial.print('L');
      delay(10); 
    }
  }
}
Module 2
Code:
int Led = 2;
int Le = 4;
void setup(){
  Serial.begin(9600);
  pinMode(Led, OUTPUT);
  pinMode(Le, OUTPUT);
}
void loop(){
  if(Serial.available() > 0){
     if(Serial.read() == 'A'){
        digitalWrite(Led, HIGH);
        delay (10);
        digitalWrite(Led, LOW);
     }
     if(Serial.read() == 'B'){
        digitalWrite(Le, HIGH);
        delay (10);
        digitalWrite(Le, LOW);
     }
  }
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

On m'a parler de faire un set reset du Xbee mais je vois pas comment faire.....
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 772
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour, avant même de tester des truc de fada.. tu a tester ton programme comme ça? parce que à 10ms d'allumage a chaque fois.. entre la vitesse de transmission de traitement etc.. si il passe 10ms puis rien pendant 500 normal que tu la vois pas s'allumer ta led.. bref sinon essaie d'afficher ce que tu reçois par le xbee pour voir si ça a bien le A ou le B ou on ne sais trop coi, ça sera déjà une piste..

Skizo
Logged

Un tien vaux mieux que deux tu l'auras !

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai changer les temps c'est tjr la meme chose mais j'ai remarque qu'il faut appuyer sur A puis sur B pour que la led s'allume
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
void loop(){
  if(Serial.available() > 0){
     char c = Serial.read();
     if(c == 'A'){
        digitalWrite(Led, HIGH);
        delay (10);
        digitalWrite(Led, LOW);
     }
     if(c == 'B'){
        digitalWrite(Le, HIGH);
        delay (10);
        digitalWrite(Le, LOW);
     }
  }
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
God Member
*****
Karma: 3
Posts: 675
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Striker
Merci pour ton Mail et ta confiance  smiley-wink smiley-grin

Je pense que Barbudor t'a donné la soluce  smiley-wink smiley-grin
@+
Will
Logged

The truth is elsewhere !!

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un GRAND MERCI ! Ca fontionne du tonerre !
Depuis le temps que je cherche comment faire ......

Dite une autre question pour pas mourir idiot
Comment on fait pour envoyer 2 valeurs directement ?





Encore merci Barbudor et AlienArea51
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je comprend pas ta question.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

exemple j'ai 2 module arduino/xbee

sur le premier j'ai les valeurs (bytes) de 2 potentiomètres que je veux envoyer au deuxième module

Je n'arrive pas à envoyer les valeurs une apres l'autres et que de l'autre côtés, le Xbee lise les valeurs




Y a 6 mois je bloquais sur sa et pas eu de solution
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Plusieurs solutions sont possibles :
- En ASCII
- En Binaire

Tu peux lire mon tuto sur comment implémenter un protocole ASCII sur une liaison série.
On peut facilement en faire une version binaire.

Au minimum tu peux faire : coté emetteur
Code:
Serial.print( "A:" ); Serial.println( valeur1 );
Serial.print( "B:" ); Serial.println( valeur2 );

et coté récepteur :
Code:
char buffer[20];

if ( Serial.available() )
{
    readBytesUntil( '\n', buffer, 20 );
    if ( strcmp( buffer, "A:" ) == 0 )
        valeur1 = atoi( buffer+2 );
    else if strcmp( buffer, "B:" ) == 0 )
        valeur2 = atoi( buffer+2 );
}
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai plus qu'a tester cela


Merci beaucoup de ton aide !!
Logged

Pages: [1]   Go Up
Jump to: