Certains projets de robotique nécessitent le contrôle simultanés de plusieurs servomoteurs: bras robotique, robot marcheur, etc. Pour ce genre de projet, un module PWM/Servo PCA9685 peut se révéler très utile.
- Broche GND - la masse
- Broche OE - "output enable": permet de désactiver tous les servomoteurs en la mettant au niveau logique HAUT. Il n'est pas nécessaire de la brancher si on n'en a pas besoin.
- Broche SCL - signal d'horloge I2C
- Broche SDA - transfert de données I2C
- Broche VCC - Alimentation logique: 5 V pour les microcontrôleurs qui fonctionnent à un niveau logique de 5 V, et 3,3 V pour les microcontrôleurs qui fonctionnent à un niveau logique de 3,3 V
- Broche V+ : Alimentation des servomoteurs (5 V); ce connecteur est également présent sous la forme d'un bornier à vis.
J'ai testé le module sur les cartes suivantes: Arduino Uno, ESP32, ESP8266, STM32 Nucleo et STM32 Blue Pill. Dans chaque cas, il s'agit de connaître la position des broches I2C, et de prendre soint d'utiliser une alimentation VCC de même valeur que le niveau logique du microconrôleur.
Branchement du module PCA9685 à un Arduino Uno
- Broche GND du module PCA9685 : Broche GND de l'Arduino
- Broche SCL du module PCA9685: Broche A5 de l'Arduino
- Broche SDA du module PCA9685: Broche A4 de l'Arduino
- Broche VCC: sortie 5 Vde l'Arduino
Branchement du module PCA9685 à un ESP8266
- Broche GND du module PCA9685 : GND
- Broche SCL du module PCA9685: Broche GPIO 5 de l'ESP8266
- Broche SDA du module PCA9685: Broche GPIO 4 de l'ESP8266
- Broche VCC: 3,3 V
Branchement du module PCA9685 à un ESP32
- Broche GND du module PCA9685 : GND
- Broche SCL du module PCA9685: Broche D22 de l'ESP32
- Broche SDA du module PCA9685: Broche D21 de l'ESP32
- Broche VCC: 3,3 V
Branchement du module PCA9685 à un STM32 F103C8 "Blue Pill"
- Broche GND du module PCA9685 : GND
- Broche SCL du module PCA9685: Broche B6 de la Blue Pill
- Broche SDA du module PCA9685: Broche B7 de la Blue Pill
- Broche VCC: 3,3 V
Branchement du module PCA9685 à un STM32 Nucleo
- Broche GND du module PCA9685 : GND
- Broche SCL du module PCA9685: Broche SCL/D15 du Nucleo
- Broche SDA du module PCA9685: Broche SDA/D14 du Nucleo
- Broche VCC: 3,3 V
Exemple de sketch
Le sketch ci-dessous contrôle 3 servomoteurs respectivement branchés aux canaux 0, 1 et 2 du module (je ne disposais malheureusement pas de 16 servomoteurs). Le servomoteur branché au canal 0 fait un mouvement lent entre ses deux positions extrêmes, celui du canal 1 va plus vite dans un sens que dans l'autre, alors que celui du canal 2 prend une position aléatoire qui change toutes les deux secondes.
La méthode setPWM permet de régler la positon des servomoteurs. Puisque le signal PWM généré est de 12 bits, une période complète peut être séparée en 4096 valeurs différentes. Le premier paramètre indique le numéro du canal (de 0 à 15), le deuxième paramètre indique à quel moment le signal PWM devient haut (de 0 à 4095), et le troisième paramètre indique à quel moment le signal PWM devient bas (de 0 à 4095).
Par exemple, pwm.setPWM(2, 0, 160) règle le signal du canal 2 de façon à ce qu'il devienne haut au tout début d'un cycle (0/4095), et qu'il devienne bas à 160/4095 d'un cycle. Il s'agit donc d'un rapport cyclique d'environ 4%.
-
-
Vidéo
Voici finalement une courte vidéo qui montre le mouvement des trois servomoteurs.
Bonjour,
RépondreSupprimerj'essaie de me servir de ce module, malheureusement, rien ne fonctionne.
En fait, je viens de remarquer que la ligne du +vcc des servos ne délivre que 0,25v max
J'ai une alim indépendante sur le bornier de puissance : 5v 1,5A
La led de mise sous tension est rouge. En général, les leds témoin sont jaunes ou vertes. Est-ce normal, ou est-ce que cela indique un défaut dans la carte ?
Autre question : tous les schémas liant une arduino à un PCA9685 indiquent de se brancher sur les bornes A5 (clock SCL) & A4 (data SDA). Pourtant, sur l'arduino, il existe 2 broches spéciales I2C, à coté du bouton reset, et c'est là que je branche mes autres périphériques I2C. Je suppose que l'utilisation de A4 A5 vient de la librairie Adafruit et qu'il faut bien respecter ce branchement ?
Merci pour vos conseils