Bonjour à tous,
Je pilote 2 servos à rotation continue (towerpro mg995) depuis ma carte arduino mais j'ai un soucis quand je souhaite faire tourner les 2 à des vitesses différentes.
J'utilise un mega 2560 et ils sont reliés sur les sorties pwm 4 et 8, je pilote l'allumage et l'extinction depuis un raspberry qui envoit du 3v sur 2 entrées analogiques 0 et 6.
Si le 3v est présent le servo tourne sinon il s'arrête.
J'utilise une alimentation externe branchée sur le secteur pour alimenter les 2 servos.
J'ai relié les neutres de l'alimentation et de l'arduino ensemble.
Voici le code que j'utilise
#include <Servo.h> // include the Servo library
#define input1 0
#define input2 6
// Create servo objects
Servo leftMotor;
Servo rightMotor;
int commandeServoLeft ;
int commandeServoRight ;
int tension ;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600) ;
}
void loop() {
commandeServoLeft = analogRead(input1) ;
Serial.print("tension borne 0 = ") ;
Serial.println(commandeServoLeft) ;
if(commandeServoLeft>600 && commandeServoLeft<800)
{
Serial.print("let s move left motor !\n");
leftMotor.attach(4);
leftMotor.writeMicroseconds(1560);
}
else
{
Serial.print("let s stop left motor !\n");
leftMotor.detach();
}
commandeServoRight = analogRead(input2) ;
Serial.print("tension borne 6 = ") ;
Serial.println(commandeServoRight) ;
if(commandeServoRight>600 && commandeServoRight<800 )
{
Serial.print("let s move right motor !\n");
rightMotor.attach(8);
rightMotor.writeMicroseconds(1660);
}
else
{
Serial.print("let s stop right motor !\n");
rightMotor.detach();
}
delay(1000) ;
}
J'ai l'impression que les moteurs ont tendance à se synchroniser ou à tourner dans le même sens.
Par exemple si j'en allume un et qu'il tourne à x si j'allume le deuxième (pour tourner à 2x) alors le premier se met à tourner 2x.
Je planche pour un problème éléctronique.
Avez-vous une idée ?
Merci de vos réponses ![]()













