Les actionneurs magnétiques, comme le CoilPad et le FlatFlap , utilisent des bobines PCB planes pour générer un faible champ magnétique interagissant avec les aimants, convertissant ainsi l'énergie électrique en énergie mécanique. DriveCell est idéal pour piloter ces actionneurs grâce à sa petite taille et à sa bibliothèque intuitive.
Les actionneurs magnétiques fonctionnent en faisant passer un courant dans une bobine, ce qui crée un champ magnétique qui interagit avec les aimants proches. Cela leur permet de vibrer ou d'osciller.
Contrairement aux moteurs à courant continu traditionnels, les actionneurs magnétiques nécessitent une commutation de polarité rapide et un contrôle précis pour fonctionner efficacement, c'est pourquoi des pilotes de pont en H comme DriveCell sont nécessaires.
Les actionneurs magnétiques s'appuyant sur des courants alternatifs, un circuit à transistor standard ne suffit pas. Le pont en H DRV8837 de DriveCell permet au courant de circuler dans les deux sens, offrant ainsi un contrôle total de la polarité et de l'intensité du champ magnétique.
Avant de connecter vos actionneurs, il est essentiel de comprendre les limitations électriques de DriveCell :
Remarque : le CoilPad et le FlatFlap consomment environ 200 mA, ce qui signifie que vous pouvez connecter jusqu'à 8 actionneurs en parallèle et les piloter à l'aide d'un seul DriveCell.
Voici comment souder/câbler un seul actionneur CoilPad ou FlatFlap à DriveCell :
Vous pouvez connecter plusieurs actionneurs en parallèle :
Cette configuration pilotera les deux actionneurs de manière synchronisée, les faisant s'activer simultanément.
Pour simplifier le contrôle des actionneurs, DriveCell propose une bibliothèque logicielle. Voici les principales fonctionnalités dont vous aurez besoin :
L'exemple suivant montre comment contrôler deux actionneurs avec des intensités différentes :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell Actuator1(IN1_pin1, IN1_pin2);
DriveCell Actuator2(IN2_pin1, IN2_pin2);
void setup() {
Actuator1.Init();
Actuator2.Init();
}
void loop() {
delay(3000);
Actuator1.Drive(1, 40); // Activate Actuator1 North-Polarity at 40% power
Actuator2.Drive(1, 80); // Activer la polarité nord de l'actionneur 2 à 80 % de puissance
délai(3000);
Actuator1.Drive(0, 50); // Activer la polarité sud de l'actionneur 1 à 50 % de puissance
Actuator2.Drive(1, 50); // Activer la polarité nord de l'actionneur 2 à 50 % de puissance
délai(3000);
Actuator1.Drive(0, 0); // Désactiver Actuator1
Actuator2.Drive(0, 100); // Activer la polarité sud de l'actionneur 2 à 100 % de puissance
}
Comprendre les fonctions :
Init()
→ Initialise DriveCell et configure les broches d'entréeDrive(direction, power)
→ Actionneur de commande :
direction
→ 1
(nord) / 0
(sud)power
→ Intensité du champ magnétique (0 à 100 %)Voici un autre exemple où nous configurons deux FlatFlaps et les faisons voleter à des vitesses différentes :
# include <DriveCell.h> # define IN1_pin1 2 # define IN1_pin2 3 # define IN2_pin1 5
# définir IN2_pin2 6 DriveCell FlatFlap1 ( IN1_pin1 , IN1_pin2 ) ; DriveCell FlatFlap2 ( IN2_pin1 , IN2_pin2 ) ; uint16_t flap_counter = 0 ; configuration vide ( ) { FlatFlap1 .Init ( ) ; FlatFlap2 .Init ( ) ; FlatFlap1 . Tone ( ) ; FlatFlap2 . Tone ( ) ; } boucle vide ( ) { retard ( 1 ) ; compteur_volet ++ ; si ( compteur_flap < 2000U ) { FlatFlap1 . Exécuter ( 0 , 100 , 100 ) ; FlatFlap2 . Exécuter ( 0 , 100 , 100 ) ; } sinon si ( flap_counter < 8000U ) { FlatFlap1 . Exécuter ( 1 , 100 , 1000 ) ; FlatFlap2 . Exécuter ( 1 , 100 , 1000 ) ; } autre { compteur_flap = 0U ; FlatFlap1 . Drive ( 0 , 100 ) ; FlatFlap2 . Lecteur ( 1 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Lecteur ( 1 , 100 ) ; FlatFlap2 . Lecteur ( 1 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Lecteur ( 1 , 100 ) ; FlatFlap2 . Lecteur ( 0 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Lecteur ( 1 , 100 ) ; FlatFlap2 . Lecteur ( 1 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Lecteur ( 0 , 100 ) ; FlatFlap2 . Lecteur ( 0 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Lecteur ( 1 , 100 ) ; FlatFlap2 . Lecteur ( 1 , 100 ) ; retard ( 500 ) ; FlatFlap1 . Tone ( ) ; FlatFlap2 . Tone ( ) ; } }
Comprendre les fonctions :
Run(smooth, power, speed_ms)
→ Osciller le FlatFlap soit dans une onde carrée, soit dans une onde PWM plus douce.
smooth
→ 1
(onde pwm) / 0
(onde carrée)power
→ Intensité du champ magnétique (0 à 100 %)power
→ Vitesse de retournement en millisecondes ⚠ Remarque : la fonction Run() & Drive()
utilise un Minuterie PWM haute vitesse, la rendant compatible uniquement avec les appareils basés sur CodeCell et 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 myActuator(IN1_pin1, IN1_pin2);
void setup() {
myActuator.Init();
}
void loop() {
myActuator.Run(1000); // Activate actuator for 1 second, then reverse
}
Cet exemple active l'actionneur en polarité nord pendant 1 seconde avant d'inverser la polarité, créant un mouvement d'onde carrée oscillante.
Le petit module DriveCell simplifie et accélère le contrôle des actionneurs magnétiques ! 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.