PCA 9685

Bonjour, J’ai trouvé ce code pour connecter 2 servos moteur ( le 1 et le 9) sur un PCA 9685 , j’ai essayé et cela fonctionne mais si je veux branché d’autres servos moteur ( jusqu’à 16 servos moteur ) quel code dois-je ajouter ou transformer et où après avoir connecté deux autres servos au contact 2 et 11 par exemple pour les faire pivoter dans un angle de 45° ou 90°.
Voici le code de base :
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// Utilisation de l’adresse par défaut 0x40 du Breakout.
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver( 0x40 );

// Suivant le type de servo utilisé, la largeur d’impulsion minimale et Maximale
// peut changer. L’idéal est de sélectionner des valeurs aussi petites et aussi
// grande que possible sans jamais atteindre la butée de blocage du servo-moteur.
// Vous aurrez peut-etre besoin de modifier ces valeurs pour les faire correspondrent
// à votre type de servo!
#define SERVOMIN 150 // La longueur d’impulsion ‘minimale’ (valeur du compteur, max 4096)
#define SERVOMAX 600 // La longueur d’impulsion ‘maximale’ (valeur du compteur, max 4096)

// Servos Commandés - Numéro de sorties sur le breakout
uint8_t servo1 = 1;
uint8_t servo9 = 9;

void setup() {
Serial.begin(9600);
Serial.println(“Controle des Servo Moteur #1 et #9!”);

pwm.begin();

pwm.setPWMFreq(60); // Les servo sont mis-à-jour à ~60 Hz
Serial.println(“Fin de setup()”);
}

void loop() {
//— Controle du Premier Servo (no 1) —
Serial.println(“Servo #1 à 45 degrés”);
// Transformation de degré (0 à 180) en pulse (SERVOMIN à SERVOMAX)
int pulseLen = map( 45, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);

delay(1000);

delay(1000);

//— Controle du Deuxieme Servo (no 9) —
Serial.println(“Servo #9 à 30 degrés”);
pulseLen = map( 30, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo9, 0, pulseLen);

delay(1000);

//— Controle du Premier Servo (no 1) —
Serial.println(“Servo #1 à 120 degrés”);
// Transformation de degré (0 à 180) en pulse (SERVOMIN à SERVOMAX)
pulseLen = map( 120, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);

delay(1000);

//— Controle du Deuxieme Servo (no 9) —
Serial.println(“Servo #9 à 150 degrés”);
pulseLen = map( 150, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo9, 0, pulseLen);

delay(1000);

//— Les deux servo à 0 —
Serial.println(“Servo #1 et #9 à 150 degrés”);
pulseLen = map( 0, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);
pwm.setPWM(servo9, 0, pulseLen);

delay(3000);
}
Merci a celui qui pourra éclairer ma lanterne de débutant .

Bonjour,
sur ce forum, comme indiqué dans les messages épinglés en tête de forum (qu’il est important de lire avant de commencer à poster !!) le code doit être inséré à l’aide de balises ‘code’ (icône </>).
Ceci facilite la lecture sur tous supports, facilite la copie ‘propre’ du code dans l’IDE Arduino… et amène ainsi davantage de réponses.
Une fois retouché le code apparaîtra dans un bloc comme ceuli-çi :

blabla....