Schéma du programme de la carte de commande d'asservissement à 32 canaux : guide complet du câblage, du codage et du débogage_Servo_Industry Insights_Kpower
Maison > Aperçu de l'industrie >Servomoteur
ASSISTANCE TECHNIQUE

Schéma du programme de la carte de commande d'asservissement à 32 canaux : guide complet du câblage, du codage et du débogage

Publié 2026-04-29

01Schéma du programme de la carte de commande de l'appareil à gouverner à 32 canauxDémarrage rapide

Pour contrôler 32 servos afin qu'ils fonctionnent ensemble, la méthode principale consiste à utiliser une carte pilote PWM à 32 canaux basée sur la puce PCA9685 comme la marque YPMFG, et à utiliser l'interface I2C de la carte de contrôle principale telle que Arduino/ESP32/Raspberry Pi pour transmettre des commandes, et chaque servo peut contrôler indépendamment l'angle. Résumé de 12 mots : connectez les fils, gravez la bibliothèque et envoyez la valeur PWM. Le diagramme de programme complet, l'exemple de code Arduino et les solutions à 5 problèmes haute fréquence sont donnés ci-dessous, il n'est donc pas nécessaire de chercher davantage.

02Schéma de câblage du matériel (connexions principales)

La carte de commande servo à 32 canaux et la carte de commande principale ne nécessitent que 4 fils :

Broches de la carte de contrôle Se connecte au tableau de commande principal illustrer
VCC (3-5 V) Sortie 3,3 V/5 V Alimentation logique, même tension que la commande principale
GND GND Terre commune, doit être connectée
SCL SCL (comme A5 sur Uno) Ligne d'horloge I2C
SDA SDA (comme A4 sur Uno) Ligne de données I2C

Concernant l'alimentation du servo, les points clés à noter sont : le servo 32 canaux ne doit pas être alimenté par la carte de commande principale. Il doit être connecté à une alimentation régulée 5V ou 6V. La méthode de calcul actuelle ici est le nombre de servos multiplié par le courant de chaque servo lorsqu'il est bloqué. Des exemples concrets de câblage correspondant au schéma de programme correspondant sont les suivants :

Connectez la borne positive de l'alimentation externe à la carte de commandeV+Borne, pôle négatifGND

Lors de la connexion d'un servo spécifique, son fil rouge doit être connecté au port rouge sur le même canal correspondant à chaque phase de la carte de commande, le fil marron doit être connecté au port marron et les fils orange et jaune doivent être connectés au port de signal PWM.

Un exemple est que lorsqu'un fabricant fabriquait un robot à 12 degrés de liberté, la carte de commande principale a été brûlée parce que l'alimentation externe n'était pas connectée.La méthode de fonctionnement correcte consiste à utiliser une alimentation à découpage 6 V/10 A pour alimenter directement la carte de commande.

03Code du programme Arduino (copie directe disponible)

Le programme suivant initialise la carte de commande à 32 canaux, fait tourner le 1er servo à 0°, fait tourner le 3ème servo à 180° et scanne tous les servos dans un cycle. Dans la fonction principale setPWM (channel, on, off), la largeur d'impulsion correspondant à la valeur off est : 0° est égal à 150, 90° est égal à 375 et 180° est égal à 600 (ceci est basé sur une fréquence de 50 Hz et la plage d'impulsions est de 0,5 ms à 2,5 ms).

#inclure#inclure// Bibliothèque officielle Adafruit_PWMservomoteurPilote pwm = Adafruit_PWMservomoteurPilote (0x40); //Adresse I2C par défaut 0x40 #defineservomoteurMIN 150 // Largeur d'impulsion 0° #define SERVOMAX 600 // Largeur d'impulsion 180° void setup() { Serial.begin(9600); pwm.begin(); pwm.setOscillatorFrequency(27000000); // Calibrer l'oscillateur interne pwm.setPWMFreq(50); // Délai standard du servo 50 Hz (10 ); } void loop() { // Le 0ème canal tourne à 0° pwm.setPWM(0, 0, SERVOMIN); retard (1000); // Le 0ème canal tourne à 180° pwm.setPWM(0, 0, SERVOMAX); retard (1000); // Tous les canaux sont analysés en séquence pour (int ch = 0; ch

32路舵机控制板程序图_舵机控制电路板_如何用程序控制舵机

Téléchargez le code ci-dessus sur Arduino pour observer le mouvement du servo. Si les 32 canaux sont dans un état normal, cela signifie que le schéma de programme de la carte de commande d'asservissement à 32 canaux a pris effet.

04Débogage et dépannage courant (format Q/A)

Q1 : Le servo ne bouge pas du tout, comment puis-je le positionner rapidement ?

Vérifiez soigneusement la tension et le courant de l'alimentation externe, utilisez un multimètre pour mesurer s'il y a de l'électricité entre V+ et GND sur la carte de commande, testez un servo séparément et connectez-vous directement au signal PWM.

Q2 : Le servo tremble ou ne peut pas tourner à l'angle spécifié ?

R : L’alimentation électrique est insuffisante. Pour calculer le courant total, le courant de chaque servo est de 200 mA au ralenti et de 1 A en état de rotor verrouillé. Dans le cas de 32 canaux, au moins une alimentation à découpage de 10 A ou plus est requise.

Q3 : La communication I2C a échoué (le scanner ne trouve pas l'appareil) ?

R : Vérifiez si SCL et SDA sont connectés de manière inversée. Concernant la résistance pull-up, la plupart des cartes ont intégré 4,7kΩ, ce qui réduit le taux I2C à 100kHz.

Q4 : Que dois-je faire si différentes marques de servos ont des largeurs d'impulsion différentes ?

Calibrez séparément selon les macros SERVOMIN et SERVOMAX. Tout d'abord, vous devez écrire un programme de test pour faire pivoter le servo à 0°, puis mesurer l'angle réel, puis ajuster la valeur. Ensuite, vous devez écrire un programme de test pour faire pivoter le servo à 180°, mesurer à nouveau l'angle réel et ajuster la valeur.

Q5 : Comment contrôler plusieurs servos pour qu'ils se déplacent en douceur en même temps ?

Tout d'abord, A a mentionné un moyen qui consiste à utiliser pwm.setPWM pour effectuer une opération de mise à jour canal par canal, et cette opération est non bloquante et retardée. Ainsi, pour la synchronisation de plusieurs servos, il est recommandé d'utiliser le décalage horaire accumulé, qui est implémenté via millis(). C'est le cas.

32路舵机控制板程序图_如何用程序控制舵机_舵机控制电路板

05Avancé : exemple de contrôle Raspberry Pi Python

Pour les utilisateurs de Raspberry Pi, après avoir installé la bibliothèque adafruit-circuitpython-pca9685, vous pouvez également vous connecter en I2C. Le code suivant fera osciller le servo du canal 2 d'avant en arrière :

importer la carte importer busio depuis adafruit_pca9685 importer PCA9685 depuis adafruit_motor importer servo i2c = busio.I2C(board.SCL, board.SDA) pca = PCA9685(i2c, adresse=0x40) pca.fréquence = 50 servo2 = servo.Servo(pca.channels[1], min_pulse=500, max_pulse=2500) while True : servo2.angle = 0 time.sleep(1) servo2.angle = 180 time.sleep(1)

La méthode de connexion du Raspberry Pi et de l'Arduino dans le diagramme du programme est la même, c'est-à-dire que SCL est connecté au GPIO2, SDA est connecté au GPIO3 et GND est une masse commune.. Avant l'exécution, assurez-vous d'utiliser i2cdetect -y 1 pour confirmer que l'adresse du périphérique est 0x40.

06Processus complet du projet et suggestions d’actions

conformément àSchéma du programme de la carte de commande de l'appareil à gouverner à 32 canaux, vous pouvez obtenir un contrôle indépendant du câblage à 32 canaux en 3 heures. Afin de renforcer la conclusion, vous devez opérer dans l’ordre suivant.

1. Le travail de préparation à effectuer consiste à obtenir la carte de servocommande YPMFG 32 canaux, à obtenir l'Arduino Uno, à obtenir le module de stabilisation de tension 12V à 5V/10A et à obtenir 32 servos MG995.

2. Commencez le câblage. La durée est de 10 minutes. Vous devez connecter I2C et l'alimentation externe conformément au schéma de câblage de la section 1. Ne connectez pas le servo en premier, mais testez le voyant de la carte de commande.

3. Copiez le code Arduino, installez la bibliothèque Adafruit_PWMServoDriver et modifiez l'adresse en 0x40. Ce processus prend 15 minutes. C'est le programme de gravure.

4. Effectuez un test sur un seul servo (durée 5 minutes), connectez un servo au canal 0, téléchargez le code et confirmez qu'il peut tourner à 0° et 180°.

5. Extension à 32 canaux, la durée est de 1 heure : connectez tous les servos un par un dans l'ordre et vérifiez la réponse de chaque canal.

6. Calibrage et optimisation. Ce processus prend 1 heure. Cela nécessite de mesurer la plage d'impulsions réelle de chaque servo et de mettre à jour la valeur SERVOMIN/MAX.

Répétez le point central : le PWM généré par PCA9685 est le cœur de toute carte de servocommande à 32 canaux. La clé du diagramme de programme est de connecter correctement I2C, de connecter correctement l'alimentation externe et d'appeler correctement la fonction de bibliothèque. Tant qu'il n'y a pas d'erreurs dans ces trois étapes, même si 32 canaux sont à pleine charge, ils peuvent toujours fonctionner de manière stable.

07Correction des idées fausses courantes

Concernant l'idée fausse 1, il est faux de penser que la carte de commande d'asservissement peut être alimentée directement via USB.Parce que le courant d'alimentation fourni par USB n'est que de 500 mA au maximum, même si deux servos sont connectés, la carte de contrôle redémarrera.. Par conséquent, une alimentation régulée externe doit être utilisée pour l’alimentation électrique.

Malentendu 2 : toutes les largeurs d'impulsion des servos ne sont pas comprises entre 150 et 600, → C'est faux. Les servos analogiques sont différents des servos numériques, et la fiche technique doit être consultée.

Il existe un malentendu selon lequel 32 canaux doivent utiliser 32 broches PWM, mais c'est faux. Étant donné que le bus I2C ne nécessite que 2 fils, en changeant l'adresse, la fonction d'extension de 62 canaux peut être obtenue.

08Ressources et références faisant autorité

Toutes les données de cet article sont basées sur les sources vérifiables suivantes :

Le chapitre 8 de la version 2015 de Philips Semiconductor de la fiche technique de la puce PCA9685 est intitulé « Fréquence et résolution PWM ».

Dans la documentation officielle, Adafruit PWM Servo Driver Library, la formule de calcul de largeur d'impulsion de la fonction setPWMFreq() et la formule de calcul de largeur d'impulsion de la fonction setPWM().

La norme industrielle dans le domaine de la commande des appareils à gouverner stipule que lorsque la largeur d'impulsion du PWM 50 Hz est comprise entre 0,5 ms et 2,5 ms, elle correspond à l'angle de 0° à 180°.

Vous pouvez utiliser le code et le schéma de câblage ci-dessus pour produire ou enseigner directement. La combinaison de la carte de contrôle YPMFG avec Arduino a été utilisée avec succès dans les robots hexapodes, les bras robotiques à 32 axes et les réseaux d'éclairage de scène. Si vous rencontrez des problèmes lors de l'exécution, reportez-vous à nouveau au tableau de câblage de la section 1 et à la liste d'actions de la section 5. 95 % des défauts sont causés par l'alimentation électrique ou un mauvais câblage I2C.

Heure de mise à jour:2026-04-29

Alimenter l’avenir

Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.

Courrier à Kpower
Soumettre une demande
Message WhatsApp
+86 0769 8399 3238
 
kpowerCarte