Pages: [1]   Go Down
Author Topic: Xbee avec servomoteurs  (Read 900 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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, @+
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

 smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  :-/
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Montre également le code que tu utilises.
« Last Edit: January 26, 2010, 01:00:29 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

#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
Logged

Pages: [1]   Go Up
Jump to: