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 .