Lors de l'utilisation de moteurs CC à balais, le contrôle de leur vitesse et de leur direction est essentiel à la création de robots fonctionnels, de systèmes d'automatisation et de projets interactifs. DriveCell, un pilote de moteur compact basé sur le pont en H DRV8837, simplifie ce processus grâce à une bibliothèque intuitive. Dans ce guide, nous explorerons le fonctionnement de DriveCell, comment contrôler un moteur CC et comment connecter efficacement plusieurs moteurs.
Un moteur à courant continu à balais est un type de moteur électrique simple dans lequel le courant circule à travers un ensemble de balais et un collecteur pour créer un mouvement de rotation. Son fonctionnement repose sur le principe de l'induction électromagnétique, qui génère un champ magnétique à l'intérieur du moteur, le propulsant en rotation continue.
Contrairement aux servomoteurs ou aux moteurs pas à pas, les moteurs à courant continu à balais nécessitent deux signaux d'entrée pour contrôler leur mouvement :
C'est là qu'interviennent les pilotes de pont en H comme le DRV8837 de DriveCell. Le circuit de pont en H permet au courant de circuler dans les deux sens, permettant ainsi un contrôle bidirectionnel du moteur avec seulement deux broches d'entrée.
Avant de connecter vos moteurs, il est essentiel de comprendre les limitations électriques du DriveCell :
Si votre moteur nécessite moins de 0,5 A, vous pouvez également connecter deux moteurs en parallèle et les piloter à l'aide d'un seul DriveCell.
Voici comment câbler un seul moteur à courant continu à DriveCell :
Si vos moteurs consomment moins de 500 mA chacun, vous pouvez connecter deux moteurs en parallèle :
Cette configuration entraînera les deux moteurs de manière synchrone, les faisant tourner dans la même direction à la même vitesse.
Pour simplifier le contrôle des moteurs, DriveCell propose une bibliothèque logicielle. Voici les principales fonctionnalités dont vous aurez besoin :
L'exemple suivant montre comment contrôler deux moteurs à des vitesses différentes :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell Motor1(IN1_pin1, IN1_pin2);
DriveCell Motor2(IN2_pin1, IN2_pin2);
void setup() {
Motor1.Init();
Motor2.Init();
}
void loop() {
delay(3000);
Motor1.Drive(1, 40); // Move Forward at 40% speed
Motor2.Drive(1, 80); // Move Forward at 80% speed
delay(3000);
Motor1.Drive(0, 50); // Move Backward at 50% speed
Motor2.Drive(0, 50); // Move Backward at 50% speed
delay(3000);
Motor1.Drive(0, 0); // Set to 0% speed
Motor2.Drive(0, 100); // Déplacement vers l'arrière à 100 % de la vitesse
}
⚠ Remarque : la fonction Drive()
de cet exemple utilise un minuteur PWM haute vitesse, ce qui la rend compatible uniquement avec CodeCell et d'autres appareils basés sur ESP32.
Vous trouverez ci-dessous un autre exemple qui peut être utilisé avec d’autres microcontrôleurs comme l’Arduino Uno :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell myDriveCell(IN1_pin1, IN1_pin2);
void setup() {
myDriveCell.Init();
}
void loop() {
myDriveCell.Run(1000); // Run motor forward for 1 second, then reverse
}
Cet exemple fera tourner le moteur dans un sens pendant 1 seconde, puis inverser son sens direction , créant un mouvement oscillant simple.
Le petit module DriveCell simplifie et accélère le contrôle des moteurs à courant continu ! Consultez le dépôt GitHub DriveCell pour plus d'exemples de code et de documentation technique !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2025 Microbots.