Arduino Forum

International => Français => Topic started by: phildream on Mar 02, 2011, 09:40 am

Title: Romeo et servomoteur
Post by: phildream on Mar 02, 2011, 09:40 am
Bonjour, je commence avec arduino et quand j'utilise le code suivant, le servo se déplace par saccade. C'est un servo standart.
merci, phil...

// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.


#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}
Title: Re: Romeo et servomoteur
Post by: phildream on Mar 05, 2011, 12:21 pm

// Sweep
// by BARRAGAN <http://barraganstudio.com>

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 1;    // variable to store the servo position

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
  for(pos = 0; pos < 255; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(10);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 255; pos > 1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(10);                       // waits 15ms for the servo to reach the position
  }
}
Title: Re: Romeo et servomoteur
Post by: phildream on Mar 05, 2011, 12:22 pm
c'était ma petite correction pour la romeo...
Title: Re: Romeo et servomoteur
Post by: phildream on Mar 05, 2011, 01:02 pm
Suite au second code, j'ai remis le premier et ça marche...<pourquoi, au bout de 15 jours de recherche et d'essai? Si vous savez merci de me répondre...
Title: Re: Romeo et servomoteur
Post by: karistouf on Mar 05, 2011, 01:16 pm
mise à jour java ?
Title: Re: Romeo et servomoteur
Post by: phildream on Mar 05, 2011, 02:08 pm
Bonne question, je regarde, merci...
Title: Re: Romeo et servomoteur
Post by: Teiva on Mar 05, 2011, 04:37 pm
Bonjour,
Ton délais 10 ou 15ms est trop court, il faut au moins 20ms pour rafraichir un servo.
Un delais de 50 ms est plus approprié.
un step de 1° n'ai pas forcément visible sur un servo, certains vont "décoller" qu'après 2 à 5° et c'est pas forcément linéaire.
Cela change aussi suivant l'alimentation, sur une roméo tu as un connecteur dédié pour les servos, tu peux leurs donner du 5V ou 6v et aussi avec une bonne réserve d'intensité (ne pas oublier que les servos sont fait pour le modélisme et en modélisme on utilise des batteries qui peuvent "cracher" jusqu'à une centaine d'ampères ;o)

A+ Teiva
Title: Re: Romeo et servomoteur
Post by: phildream on Mar 06, 2011, 08:30 am
Merci pour les info, mise a jour java ok karistouf.
Merci Teiva, je vais tester tout ça....