FlatFlap est un actionneur compact conçu pour les volets. Cependant, dans ce guide, nous nous concentrerons sur le contrôle de position : maintenir le volet dans une position fixe grâce à un cycle de service contrôlé. Cette méthode est utile pour les applications nécessitant que le volet reste à un angle spécifique pendant de longues périodes, plutôt qu'en oscillation continue.
Le FlatFlap fonctionne en faisant passer un courant dans sa bobine, générant un champ magnétique qui interagit avec son aimant. Au lieu d'appliquer une courte impulsion ou de faire osciller l'onde carrée, nous allons utiliser ici la modulation de largeur d'impulsion (MLI) pour maintenir le volet à l'angle souhaité.
Le cycle de service du signal PWM contrôle la force du champ magnétique, modifiant ainsi l'angle du volet.
Plusieurs facteurs influencent la précision et la stabilité de la position :
Si vous utilisez le Bibliothèque DriveCell, l'exemple suivant montre comment définir différentes positions :
#include <drivecell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell FlatFlap1(IN1_pin1, IN1_pin2);
void setup() {
FlatFlap1.Init();
}
void loop() {
FlatFlap1.Drive(true, 100); // Maximum hold strength
delay(3000);
FlatFlap1.Drive(true, 75); // Hold with 75% power
delay(3000);
FlatFlap1.Drive(true, 50); // Hold with 50% power
delay(3000);
FlatFlap1.Drive(true, 25); // Hold with 25% power
delay(3000);
}
Ce code ajuste progressivement le cycle de service pour maintenir le volet dans différentes positions.
Comprendre les fonctions :
Init()
→ Initialise DriveCell et configure les broches d'entréeDrive(bool direction, uint8_t power_percent)
true
(nord) / false
(sud)⚠ 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.
Si vous n'utilisez pas de périphérique ESP32, vous pouvez ajuster la modulation de largeur d'impulsion (PWM) dans Arduino avec le code suivant. Assurez-vous toutefois que la fréquence de la forme d'onde est correctement définie.
#define FLAP_PIN1 2
#define FLAP_PIN2 3
void setup() {
pinMode(FLAP_PIN1, OUTPUT);
pinMode(FLAP_PIN2, OUTPUT);
digitalWrite(FLAP_PIN2, LOW);
}
void loop() {
analogWrite(FLAP_PIN1, 191); // 75% Duty Cycle (191/255)
digitalWrite(FLAP_PIN2, LOW);
delay(5000); // Hold for 5 seconds
analogWrite(FLAP_PIN1, 127); // 50% Duty Cycle
delay(5000);
analogWrite(FLAP_PIN1, 63); // Cycle de service de 25 %
délai(5000);
}
Grâce à la technologie PWM, le FlatFlap peut maintenir des angles spécifiques pendant de longues périodes, ce qui rend cette fonctionnalité utile pour la robotique, l'haptique et l'art. 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.