Dans ce guide, nous nous concentrerons sur le contrôle de la polarité et de l'intensité du champ magnétique du CoilCell, ce qui le rend idéal pour des applications telles que les pixels mécaniques à points basculants et autres pixels magnétiques.
CoilCell fonctionne en faisant passer un courant dans sa bobine, générant ainsi un champ magnétique dont la polarité dépend du sens du courant. Grâce à son pont en H intégré, CoilCell peut contrôler directement la polarité et l'intensité de la bobine sans nécessiter de pilote externe, comme DriveCell.
Au lieu de simplement allumer ou éteindre la bobine, nous utiliserons la modulation de largeur d'impulsion (PWM) pour ajuster finement la force magnétique et inverser la polarité selon les besoins.
Plusieurs facteurs affectent le contrôle de la polarité et l’intensité du champ :
N'oubliez pas que CoilCell est disponible en deux configurations :
Si vous utilisez la bibliothèque CoilCell, l'exemple suivant montre comment inverser la polarité et ajuster la force :
#include <CoilCell.h>
#define COIL_PIN1 2
#define COIL_PIN2 3
CoilCell myCoilCell(COIL_PIN1, COIL_PIN2);
void setup() {
myCoilCell.Init();
}
void loop() {
myCoilCell.Drive(true, 100); // Strong north pole field
delay(3000);
myCoilCell.Drive(false, 100); // Fort champ polaire sud
délai(3000);
myCoilCell.Drive(true, 50); // Champ du pôle nord plus faible
délai(3000);
myCoilCell.Drive(false, 50); // Champ du pôle sud plus faible
délai(3000);
}
⚠ Remarque : la fonction Drive
()
utilise un minuteur PWM haute vitesse, ce qui la rend compatible uniquement avec les appareils basés sur CodeCell et ESP32.
Init()
→ Initialise CoilCell et configure les broches de contrôle.Drive(bool direction, uint8_t power_percent)
true
(pôle nord) / false
(pôle sud)En alternant la polarité, CoilCell permet de retourner des éléments magnétiques, comme un pixel flipdot combiné à un aimant. Pour atténuer ce phénomène, on peut utiliser la modulation de largeur d'impulsion (MLI) sur les deux sorties. Cette méthode modifie progressivement l'intensité du champ magnétique, réduisant ainsi les contraintes mécaniques sur CoilCell.
Cette fonction est gérée automatiquement dans notre bibliothèque CoilCell :
#include <coilcell.h>
#define COIL_PIN1 2
#define COIL_PIN2 3
CoilCell myCoilCell(COIL_PIN1, COIL_PIN2);
uint16_t vibration_counter = 0;
void setup() {
myCoilCell.Init();
myCoilCell.Tone();
}
void loop() {
myCoilCell.Vibrate(1, 75, 1000); // Flip at 75% power every 1sec
}
Init()
→ Initialise CoilCell et configure les broches d'entrée.Vibrate(smooth, power, speed_ms)
→ Fait osciller la CoilCell 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 %)speed_ms
→ Vitesse de vibration en millisecondes ⚠ Remarque : la fonction Vibrate
()
utilise une minuterie PWM haute vitesse, ce qui la rend compatible uniquement avec les appareils basés sur CodeCell et ESP32.
Grâce à ces techniques, vous pouvez commencer à contrôler la polarité magnétique de CoilCell. Consultez le dépôt GitHub de CoilCell 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.