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