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 ! ![]()














