Pages: [1]   Go Down
Author Topic: Contrôle de trois servomoteurs  (Read 323 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous.
Pour un projet scolaire je voudrai faire tourner trois servomoteurs, représentant les trois principales articulations d'une jambe : la hanche, le genou et le mollet. J'ai donc fait le code et les branchements. Lorsqu'un servomoteur est branché, il marche parfaitement, mais dès que j'en branche un deuxième, les deux servomoteurs commencent à faire n'importe quoi : on dirait qu'ils se remettent en position initiale à chaque fois. Ci-dessous, je vous mets mon code, puisque je pense que c'est de là que vient le problème (les servomoteurs ont été testés individuellement et fonctionnent, et la carte Arduino Uno aussi) :

Code:
#include <Servo.h>
Servo TPE_un;
Servo TPE_deux;
Servo TPE_trois;
int pos_un = 90;
int pos_deux = 90;
int pos_trois = 90;

void setup()
{
  TPE_un.attach(9);
  TPE_un.write(pos_un);
  for(pos_un = 50; pos_un <= 100; pos_un++)
  {
    TPE_un.write(pos_un);
    delay(10);
  }

  TPE_deux.attach(10);
  TPE_deux.write(pos_deux);
  for(pos_deux = 0; pos_deux <= 60; pos_deux++)
  {
    TPE_deux.write(pos_deux);
    delay(10);
  }

  TPE_trois.attach(11);
  TPE_trois.write(pos_trois);
  for(pos_trois = 0; pos_trois <= 90; pos_trois++)
  {
    TPE_trois.write(pos_trois);
    delay(10);
  }
}

void loop()
{
  int pos = 180;
  for(pos = 180; pos >= 0; pos--)
  {
  pos_un = pos/(180/100);
  pos_deux = pos/3;
  pos_trois = pos/2;
  TPE_un.write(pos_un);
  TPE_deux.write(pos_deux);
  TPE_trois.write(pos_trois);
  delay(10);
  }
 
  pos = 0;
  for(pos = 0; pos <= 180; pos++)
  {
  pos_un = pos/(180/100);
  pos_deux = pos/3;
  pos_trois = pos/2;
  TPE_un.write(pos_un);
  TPE_deux.write(pos_deux);
  TPE_trois.write(pos_trois);
  delay(10);
  }
}
Logged

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

C'est l'alimentation qui n'est pas adéquate.

Il faut alimenter les servos séparément de l'arduino, tout en mettant les masse en commun avec ce dernier.
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

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

J'ai justement une alimentation 5V-5A à disposition.
Cela fera-t-il l'affaire ? Et quel serait les branchages à effectuer ?
Logged

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

Tu sort les fils rouge de tes prises Futaba, tu branche normalement tes servos, tu branche tout tes fils rouge au + de ton alim, et le moins a GND de la carte arduino
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Tu sort les fils rouge de tes prises Futaba, tu branche normalement tes servos, tu branche tout tes fils rouge au + de ton alim, et le moins a GND de la carte arduino
Ne pas oublier de brancher le GND de l'alimentation au GND de l'arduino smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: