Mise à jour le 19/11/2023 : Cet article traite d’une carte de commande qui vous permet d’augmenter le nombre de sorties pwm quand votre carte Arduino devient trop juste pour répondre à vos besoins.
Sommaire :
- Information technique
- Tutoriel sur la carte de chez Seeed
- Exemple de schema
- Pilotage d’un servomoteur avec retour d’informations
- Pilotage de 2 servomoteurs avec des tensions d’alimentations différentes
- Pilotage de 2 servos avec une tension d’alimentation de 12V et utilisation de 2 régulateurs pour s’adapter à la tension de service des actionneurs
- Exemple de programme.
- Pour tout probléme
- Retour au menu systeme Grove
Information technique |
Carte de commande de chez Seeedstudio reference 108020102 possedant 16 canaux basée sur un PCA9685 permettant de contrôler jusqu’à 16 servomoteurs ou 16 leds via une liaison PWM. Ce module communique avec une carte Arduino ou compatible via le bus I2C.
Cette carte comporte jusqu’à 6 pontets à souder permettant de raccorder jusqu’à 64 PCA9685 sur un seul bus I2C. Une source d’alimentation externe est nécessaire pour les servomoteurs.
Caractéristiques:
- Alimentation partie logique: 3,3 et 5 Vcc
- Alimentation partie servomoteur: 2,3 à 5,5 Vcc
- Commande: via le bus I2C
- Adresse I2C par défaut: 0x7f (configurable par pontet à souder)
- Compatible niveaux logiques 5 V
- Sorties servos/leds: connecteur mâle au pas de 2,54 mm
- Intensité maxi:
– 25 mA par led
– 400 mA au total pour tous les servos - Dimensions : 65x45x13mm
Tuto |
.
Exemple de schema |
.
Pilotage d’un servomoteur avec retour d’informations à l’aide de la carte SEEED référence 108020102
Pilotage de 2 servomoteurs avec des tensions d’alimentations différentes à l’aide de la carte SEEED référence 108020102 .
Schema de 2 servos avec une tension d’alimentation de 12V et utilisation de 2 régulateurs pour s’adapter à la tension de service des actionneurs à l’aide de la carte SEEED référence 108020102.
.
Exemple de programme |
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
// // // ********************************************* // // // // Arduino avec // une commande 16 canaux pour servos // I2C - basé sur un PCA9685 // // Code: Mazelin Herve // RedOhm // Le 11/12/2021 // ********************************************* // chargement de la librairie pour l'utilisation de carte #include "PCA9685.h" // chargement de la librairie pour la communication I2C #include <Wire.h> ServoDriver servo; int a ; // ********************************************************************* // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécutée une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // ********************************************************************* void setup() { Serial.begin(9600); // on attent que le port de communication soit pret while (!Serial) { ; } Serial.println("communication en service"); // join I2C bus (I2Cdev la bibliothèque ne le fait pas automatiquement) Wire.begin(); servo.init(0x7f); // Décommentez cette ligne si vous devez utiliser un servo spécial // servo.setServoPulseRange(600,2400,180); } // ********************************************************************** // Le programme principal s’exécute par une boucle infinie appelée Loop () // ********************************************************************** void loop() { // premier parametre le numero de servo // second parametre le deplacement en degrée servo.setAngle(16, 10); delay (500); servo.setAngle(13, 10); delay(1000); servo.setAngle(9, 0); delay(1000); servo.setAngle(8, 0); delay(1000); servo.setAngle(1, 0); delay(1000); // premier parametre le numero de servo // second parametre le deplacement en degrée servo.setAngle(13, 140); servo.setAngle(9, 250); servo.setAngle(8, 250); servo.setAngle(1, 250); delay(1000); servo.setAngle(16, 250); delay (500); for (int i = 0; i <= 4; i++) { a=a+20; servo.setAngle(13, 140-a); delay (250); } a=0; } |
.
Pour tout problème |
Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes sur lesquelles nous éditons.
Cliquez sur celles qui vous intéressent .