Bonjour Jpbbricole,
Merci pour ta réponse. Je vais essayer avec la bibliothèque que tu suggères. Car effectivement pour l'instant je n'ai besoin que de contrôler 6 servo en simultané, mais dans le futur j'ai pour projet de construire un petit "robot" avec une vingtaine de servo. donc il faudra que je trouve une solution quoiqu'il arrive 
pour info voici le code que j'avais (un peu brouillon je m'en excuse) :
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#define SERVOMIN 150
#define SERVOMAX 600
#define USMIN 600
#define USMAX 2400
#define SERVO_FREQ 50
#define BUTTON_PIN 2
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
uint16_t angleToPulse(int angle) {
return map(angle, -90, 90, SERVOMIN, SERVOMAX);
}
void setup() {
Serial.begin(9600);
Serial.println("Servo test!");
pwm.begin();
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(SERVO_FREQ);
pinMode(BUTTON_PIN, INPUT_PULLUP); // Configurer la broche du bouton en entrée avec résistance de pull-up
// Initialiser les servos à leur position zéro
pwm.setPWM(0, 0, angleToPulse(0)); // Initialiser le servo à la position neutre
pwm.setPWM(1, 0, angleToPulse(0));
pwm.setPWM(2, 0, angleToPulse(0)); // Initialiser le servo à la position neutre
pwm.setPWM(3, 0, angleToPulse(0));
pwm.setPWM(4, 0, angleToPulse(0)); // Initialiser le servo à la position neutre
pwm.setPWM(5, 0, angleToPulse(0));
}
void loop() {
// Attendre que le bouton soit enfoncé pour démarrer la séquence
while (digitalRead(BUTTON_PIN) == HIGH) {
delay(100); // Attendre 100 ms avant de vérifier à nouveau
}
// Servo numéro un
pwm.setPWM(0, 0, angleToPulse(45)); // Position à 45 degrés
delay(3000); // Tenir la position pendant trois secondes
pwm.setPWM(0, 0, angleToPulse(0)); // Revenir à la position zéro
delay(500); // Attendre 500 ms
pwm.setPWM(0, 0, angleToPulse(-45)); // Tourner à -45 degrés
delay(2000); // Tenir la position pendant deux secondes
pwm.setPWM(0, 0, angleToPulse(45)); // Revenir à 45 degrés
delay(2000); // Tenir la position pendant deux secondes
pwm.setPWM(0, 0, angleToPulse(0)); // Revenir à la position zéro
delay(2000); // Tenir la position pendant deux secondes
pwm.setPWM(0, 0, angleToPulse(45)); // Revenir à 45 degrés
delay(2000); // Tenir la position pendant deux secondes
pwm.setPWM(0, 0, angleToPulse(0)); // Revenir à la position zéro
delay(3000); // Tenir la position pendant deux secondes
// Servos 2 et 3
pwm.setPWM(1, 0, angleToPulse(90)); // Servo 2 à 90 degrés
pwm.setPWM(2, 0, angleToPulse(90)); // Servo 3 à 90 degrés
delay(4000); // Tenir la position pendant quatre secondes
pwm.setPWM(1, 0, angleToPulse(0)); // Revenir à la position zéro pour le servo 2
pwm.setPWM(2, 0, angleToPulse(0)); // Revenir à la position zéro pour le servo 3
delay(2000); // Attendre deux secondes avant de recommencer
// après noir Servo numéro un
pwm.setPWM(0, 0, angleToPulse(45)); // Position à 45 degrés
delay(6000); // Tenir la position pendant trois secondes
pwm.setPWM(0, 0, angleToPulse(-45)); // Tourner à -45 degrés
delay(2000); // Tenir la position pendant deux secondes
pwm.setPWM(2, 0, angleToPulse(90));
delay(20);
pwm.setPWM(4, 0, angleToPulse(90));
pwm.setPWM(5, 0, angleToPulse(90));
delay(20);
pwm.setPWM(4, 0, angleToPulse(0));
delay(1500);
pwm.setPWM(5, 0, angleToPulse(45));
pwm.setPWM(0, 0, angleToPulse(0)); // Position à 45 degrés
delay(1000);
pwm.setPWM(1, 0, angleToPulse(90));
delay(1000);
pwm.setPWM(0, 0, angleToPulse(45)); //tourne tete vers moi
delay(1000);
pwm.setPWM(1, 0, angleToPulse(0)); //Baisse les bras
pwm.setPWM(2, 0, angleToPulse(0));
pwm.setPWM(0, 0, angleToPulse(0)); //tete droite
delay(1500);
pwm.setPWM(3, 0, angleToPulse(80)); //salut
delay(1000);
pwm.setPWM(3, 0, angleToPulse(0)); // remonte salut
delay(1000);
pwm.setPWM(0, 0, angleToPulse(45)); // tourne tete vers moi
delay(1000);
pwm.setPWM(2, 0, angleToPulse(90)); //leve bras pour me pointer et tourne tete
pwm.setPWM(0, 0, angleToPulse(0));
delay(1000);
pwm.setPWM(0, 0, angleToPulse(45)); // tourne tete vers moi
delay(2000);
pwm.setPWM(0, 0, angleToPulse(-45)); //tourne tete opposé moi
delay(2000);
pwm.setPWM(2, 0, angleToPulse(0));
pwm.setPWM(1, 0, angleToPulse(90));
delay(500);
pwm.setPWM(4, 0, angleToPulse(45)); //fait coucou de la main
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(0));
delay(100);
pwm.setPWM(0, 0, angleToPulse(45)); //me regarde
delay(3000);
pwm.setPWM(0, 0, angleToPulse(-45));
delay(1000);
pwm.setPWM(0, 0, angleToPulse(0));
delay(1000);
pwm.setPWM(4, 0, angleToPulse(45)); //fait coucou de la main
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(0, 0, angleToPulse(45)); //tourne tete
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(0, 0, angleToPulse(-45)); //tourne tete
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(45));
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(0, 0, angleToPulse(0)); //tourne tete
pwm.setPWM(4, 0, angleToPulse(45)); //fait coucou de la main
pwm.setPWM(4, 0, angleToPulse(-45));
pwm.setPWM(4, 0, angleToPulse(0));
delay(2000);
pwm.setPWM(1, 0, angleToPulse(0));
delay(5000000000);
}
Cordialement,