Salut,
J'ai commencé à toucher au driver 16 servos compris dans le kit pour robot quadrupède, donc voici le fil dédié au test de celui-ci.
Donc le driver ressemble à ceci, il permet à une carte Arduino de contrôler jusqu'à 16 servomoteurs avec 2 broches de la carte. De plus on peut mettre plusieurs drivers en série (62 au maximum) et ainsi contrôler jusqu'à 992 servos avec seulement 2 sorties !
J'ai fait un petit montage afin de tester son fonctionnement ainsi que celui de la bibliothèque Adafruit_PWMServoDriver.h :
Avec ce programme-ci, qui est une adaptation pour le driver du programme d'exemple de la bibliothèque Servo.h (je trouve qu'il est plus compréhensible que celui fourni avec la bibliothèque d'Adafruit) :
//Bibliothèques : #include <Wire.h> #include <Adafruit_PWMServoDriver.h> //Driver : Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); //Servos : #define SERVOMIN 105 //Longueur minimum d'impulsion #define SERVOMAX 460 //Longueur maximum d'impulsion #define NBSERVO 0 //Nombre de servos-1 #define PAUSE 10 uint8_t servonum = 0; int pos = 0; void setup() { pwm.begin(); pwm.setPWMFreq(50); //Fréquence utilisée par les servos analogiques yield(); } void loop() { for (pos = SERVOMIN; pos <= SERVOMAX; pos++) //Rejoins un angle de 180° depuis 0° par pas de 1° { pwm.setPWM(servonum,0,pos); delay(PAUSE); } delay(2000); for (pos = SERVOMAX; pos >= SERVOMIN; pos--) //Rejoins un angle de 0° depuis 180° par pas de 1° { pwm.setPWM(servonum,0,pos); delay(PAUSE); } delay(2000); servonum++; if (servonum > NBSERVO) servonum = 0; }
Et voici une petite vidéo du programme en fonctionnement avec un servo (je la referais sûrement à cause de la mise au point) :
A bientôt !
- ChinaEmoni aime ceci