Ce guide explique comment le CoilPad peut générer des vibrations, comment la fréquence et la polarité affectent son mouvement et comment créer ses signaux d'entraînement.
Pour faire vibrer le CoilPad, un courant électrique est appliqué à sa bobine, générant un champ magnétique. En inversant la polarité à une fréquence définie, on crée un mouvement de va-et-vient répétitif qui provoque des vibrations.
La fréquence de vibration peut être contrôlée entre 1 Hz et 25 Hz, ce qui signifie que CoilPad peut osciller entre 1 et 25 fois par seconde selon le signal d'entrée. Il peut atteindre des fréquences plus élevées, mais l'aimant n'a généralement pas le temps de réagir.
Si vous l'attachez à quelque chose, vous pouvez l'ajuster pour qu'il corresponde à sa nouvelle fréquence de résonance et faire trembler l'ensemble.
Un signal carré est nécessaire pour faire vibrer le CoilPad. Un pilote de pont en H comme notre DriveCell doit inverser sa polarité pour le faire vibrer. Les signaux d'entrée du signal carré peuvent être générés à l'aide de simples commandes digitalWrite()
dans Arduino :
#define VIB_PIN1 2
#define VIB_PIN2 3
void setup() {
pinMode(VIB_PIN1, OUTPUT);
pinMode(VIB_PIN2, OUTPUT);
}
void loop() {
digitalWrite(VIB_PIN1, HIGH);
digitalWrite(VIB_PIN2, LOW);
delay(100); // Adjust delay for desired vibration speed
digitalWrite(VIB_PIN1, LOW);
digitalWrite(VIB_PIN2, HIGH);
delay(100);
}
Ce code simple crée une oscillation carrée, faisant vibrer le CoilPad en continu. Vous pouvez ajuster le temps de retard pour modifier la fréquence de vibration.
L'exemple de code ci-dessus génère une onde carrée basique qui entraîne la bobine de manière brusque. À basses fréquences, cela peut être indésirable. Pour atténuer ce phénomène, nous pouvons 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 le CoilPad.
Cette fonction est gérée automatiquement dans notre bibliothèque DriveCell :
#include <drivecell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell CoilPad1(IN1_pin1, IN1_pin2);
DriveCell CoilPad2(IN2_pin1, IN2_pin2);
uint16_t vibration_counter = 0;
void setup() {
CoilPad1.Init();
CoilPad2.Init();
CoilPad1.Tone();
CoilPad2.Tone();
}
boucle vide() {
retard(1);
compteur_de_vibrations++;
si (compteur_vibrations < 2000U) {
CoilPad1.Run(0, 100, 100); // Mode onde carrée
CoilPad2.Run(0, 100, 100); // Mode onde carrée
}
sinon si (compteur_vibrations < 8000U) {
CoilPad1.Run(1, 100, 1000); // Mode d'onde PWM lisse
CoilPad2.Run(1, 100, 1000); // Mode d'onde PWM lisse
} autre {
compteur_vibrations = 0U;
}
}
Init()
→ Initialise DriveCell et configure les broches d'entrée.
Run(smooth, power, speed_ms)
→ Fait osciller le CoilPad 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 Run()
& Drive()
utilise un minuteur PWM haute vitesse, ce qui la rend compatible uniquement avec les appareils CodeCell et ESP32.
Grâce à ces techniques, vous pouvez commencer à utiliser CoilPad pour faire vibrer vos appareils. 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.