Problème faire marcher un servo

Bonjour,

j'ai acheté 4 servos identique et je n'arrive pas à les faire marcher avec une Arduino DUE, après quelque essaie pas de résultat alors j'ai testé le servo pour voir s'il y avait une résistance ou non et visiblement il n'y en a pas quelque soit les fils et les valeurs ohm que je teste. J'ai testé selon le même schéma un deuxième servo en le déballant et j'arrive à la même chose. Est ce qu'il y a quelque chose à faire à un servo pour le mettre en état de marche à l'achat ? Ou quel pourrait être le problème ? Je débute en robotique peut être que je mp'y prends mal pour mesurer la résistance de mes servos, comment est il conseiller de le faire ?

Liens vers vos Servos?
Type d'alimentation Pour tester ?
Code utilisé pour tester et câblage associé?

—> lisez les règles de bon usage du forum, poser une question sans fournir les détails ça ne va pas nous aider à vous aider...

Re,

voici le servo.

Le code :

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

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 >= 0; 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
  }
}

Et la batterie en question.

Ok ça a l’air bon pour les produits - vous avez un ESC ?

Et votre montage ? (moteur coreless)

infos à lire

Je n'ai pas de ESC.

Le servo demandant 7,4volts le fil noir est connecté au fil de noir de la batterie, le fil rouge au fil rouge, et le fil blanc au pin 9 comme dans le code posté. Puis un fil relie le fil noir sur servo au GND de la Arduino DUE.

elchapo2:
Je n'ai pas de ESC.

Le servo demandant 7,4volts le fil noir est connecté au fil de noir de la batterie, le fil rouge au fil rouge, et le fil blanc au pin 9 comme dans le code posté. Puis un fil relie le fil noir sur servo au GND de la Arduino DUE.

Sur ces servo ‘coreless’ je pense qu’il vous faut un ESC ou un contrôleur. Il n’y a pas de balais et donc la commutation est électronique ==> il faut la piloter

Vous pouvez aussi lire cela

Sur le site il y a des fichiers à télécharger.
Que disent-ils ?

Merci beaucoup pour l'info.

C'est ennuyeux ça, pensez-vous que l'utiliser comme je l'ai fais comme un servo non coreless a pu endommager quoi que ce soit ?

Bonjour,

Je ne voie nulle part le niveau de signel de commande dans les spécifs du servo.

Peut être que la tension des signaux de la due (3.3v) est insuffisante pour commander le servo et qu'il demande une tension de 5V.
Ce serait toutefois un peu étonnant, les servos sont en général compatibles avec des signaux de 3.3V.

elchapo2:
Merci beaucoup pour l'info.

C'est ennuyeux ça, pensez-vous que l'utiliser comme je l'ai fais comme un servo non coreless a pu endommager quoi que ce soit ?

Je pense que quand JML parle de servo 'coreless' il fait allusion aux moteurs brushless.

Rien dans la doc du servo n'indique que ce soit un moteur de ce type. Ca semble être un servo 'classique' piloté en PWM.

Salut
Au début de ton code, je ne vois pas l'appel à la bibliothèque
Tu utilises des fonctions de <Servo.h> mais elle n'est pas déclarée, à moins que je vois mal, ou que tu ne donnes pas tout le code...

Tu n'as rien d'autre sur ta carte arduino? Genre autre chose sur une autre sortie PWM?

Ton servo tourne sur 280°, non sur 180°.
Tu devrais le commander en microseconds (3000) et non en degrés (180).
Normalement, la bibliothèque supporte les 280°. Il est possible que lorsque tu lui dis de faire 180, il essaie d'en faire 280.

Mais j'aimerais quand-même bien voir ton code en entier...

Je vais regarder ça mais si le courant doit passer dans mon servo il faut bien que je mesure une certaine resistance dedans, or c'est comme si les deux batons de mon multimetre ne toucher rien du tout.

Nope M'siô
Je viens de tester sur SG90, le ohmmètre est muet.
Il y a de l'électronique là-dedans, c'est pas une simple bobine.

Tu retires TOUT sur ta carte. Tu ne mets QUE LE SERVO sur le pin 9, tu l'alimentes en vérifiant que ton alim externe marche.
Ensuite, tu lui téléverses ce code de test:

#include <Servo.h>
Servo myservo;  // create servo object to control a servo
void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  myservo.write(90);
  delay(1000);
  myservo.write(180);
  delay(1000);
  myservo.write(90);
  delay(1000);
  myservo.write(0);
  delay(1000);

}

Si tu fais exactement ça, on pourra déduire où est le problème.
Là, ton code est pas bon, on voit pas tes connexions, il faut se mettre d'accord sur CE MONTAGE et CE PROGRAMME. S'il marche c'est résolu, c'est ton code qui ne va pas, sinon, c'est l'alim.
Sinon, on verra^^

Tout a fonctionné parfaitement merci pour votre aide.

kamill:
Je pense que quand JML parle de servo 'coreless' il fait allusion aux moteurs brushless.
Rien dans la doc du servo n'indique que ce soit un moteur de ce type. Ca semble être un servo 'classique' piloté en PWM.

dans la description sur le lien donné ils disent

Le robot servo ROBOSTAR SRS-3216HTG est rempli de fonctionnalités offrant le meilleur pour les utilisateurs de robots. Ce robuste metal gear servo est parfait pour votre robot personnalisé ou tout autre projet d'automatisation. Le boîtier en alliage dissapate chaleur en plastique et en métal et comporte des trous de montage pour une fixation facile. Le moteur haute puissance coreless fournit suffisamment de puissance en mouvement et de précision pour votre projet.

Effectivement les Coreless ont la plupart du temps des balais et commutateurs - donc pas besoin d'ESC

elchapo2:
Tout a fonctionné parfaitement merci pour votre aide.

YEAHHHH!

:smiley: 8) :stuck_out_tongue: :grin:

Tu peux ajouter [RESOLU] au titre :wink: