Xbee avec servomoteurs

Bonjour, je possède un shield Xbee et deux modules v1. En mettant sur l'arduino un code qui éclaire la led (pin 13) lorsque le SERIE reçoit H et l'éteint lorsuq'il recoit autre chose. Quand j'envoi H, cela fonctionne, la led s'éclaire sans fil via le XBEE. Le problème, c'est lorsque je remplace ma LED par un servomoteur ! Ou, simplement, que je fait allumer la LED et que j'active un moteur sur le pin 5 : la led clignote et le moteur saccade. :-/ Comment y remédier ? merci, @+

as tu penser a alimenté en externe ton servo ?? car l'arduino a peut etre pas assez de puissance

Euh, l'arduino est alimentée avec une pile 9V, et mes servos sont connectés sur la sortie "+5V" de l'arduino. Je doit utiliser une alimentation externe pour mes servos ?

Euh... un servo ça fonctionne pas comme un bête moteur DC, le + et le - sont toujours branchés (le + sous 5V et le - sur le gnd), le fil de signal reçois les signaux PWM (les positions / couleurs des fils changent suivant la marque du servo) :

Et ici une très bonne page explicative :

http://www.pobot.org/Bouge-ton-servo.html

;)

Oui, c’est de ça que je parlais, et il est branché correctement !
De plus, en passant par le cable, et avec le meme code, je n’ai pas de problème ! Il y a donc problème avec la liaison xbee :-/

Tu as essayé ton programme de commande en direct, sans passer par le Xbee ?

Montre également le code que tu utilises.

En utilisant la liaison série, mais avec un cable USB connecté a l'arduino, ça fonctionne nickel ;), mais ne xbee sa ne fonctionne pas Voila le code qui est sur l'arduino :

#define ServoLBPin 3
//  Servos
int RefreshTime  = 20;
int MinPulse     = 0;
int MaxPulse     = 180;
int TurnRate     = 10;
long LastPulseLT = 0;
long LastPulseLB = 0;
long LastPulseRT = 0;
long LastPulseRB = 0;
int CenterPosition = 90;
int PulseWidth;
int Sens;
int Valeur;
int ledState;
void setup() 
{
    PulseWidth = 90;
  // Initialisation liaison s[ch65533]rie
  Serial.begin(19200);
  pinMode(ServoLBPin, OUTPUT);  // Pin du servo en SORTIE
  pinMode(13,OUTPUT);
}

// Servo Gauche Bas
void ActiveServoLB(int PulseWidthLB){
  if(millis()-LastPulseLB >= RefreshTime){
    digitalWrite(ServoLBPin, HIGH);
    delayMicroseconds(PulseWidthLB);
    digitalWrite(ServoLBPin, LOW);
    LastPulseLB=millis();
  }
}

void loop()
{

  // test if a new value has been received
  if (Serial.available())
  {
    // update without any control
    int valeur = Serial.read();  


    if (valeur == 'Z') {  //  TOUCHE Z
      ledState = HIGH;
    PulseWidth += TurnRate;
    ActiveServoLB(PulseWidth);
    }
    else{
      ledState = LOW;
    }
    digitalWrite(13,ledState);
  }


}

Je précise que pour faire mes tests, j'ai mis ce code dans un nouveau fichier, afin de tester les différentes fonctionalitées séparément merci