FlatFlap ist ein kompakter Aktuator, der organische, flatternde Bewegungen erzeugen kann. Diese Anleitung konzentriert sich jedoch auf die Erzeugung eines kurzen Impulses – eines einzelnen Flatterns, das nur wenige Millisekunden dauert und dann stoppt. Diese Methode eignet sich für schnelle Betätigungen und Anwendungen, bei denen kurze Bewegungen erforderlich sind.
Um Bewegung zu erzeugen, benötigt FlatFlap einen elektrischen Strom, der durch die Spule fließt und ein Magnetfeld erzeugt. Durch einen kurzen Impuls induzieren wir ein schnelles Magnetfeld, das den Magneten augenblicklich abstößt.
Um manuell einen Impuls zu erzeugen, können Sie grundlegende DigitalWrite-Befehle verwenden:
#define FLAP_PIN1 2
#define FLAP_PIN2 3
void setup() {
pinMode(FLAP_PIN1, OUTPUT);
pinMode(FLAP_PIN2, OUTPUT);
}
void loop() {
digitalWrite(FLAP_PIN1, HIGH);
digitalWrite(FLAP_PIN2, LOW);
delay(500); // Pulse duration in milliseconds
digitalWrite(FLAP_PIN1, LOW);
digitalWrite(FLAP_PIN2, LOW); // Stop motion
delay(3000); // Stop for 3 sec
}
Dieser einfache Code sendet einen 500-Millisekunden-Impuls an FlatFlap, der eine kurze Bewegung auslöst, bevor er stoppt.
Anstelle eines abrupten Ein-/Aus-Impulses kann die Intensität durch PWM (Pulsweitenmodulation) schrittweise gesteuert werden, wodurch die mechanische Belastung reduziert und die Leistung verbessert wird. Dies wird in DriveCell automatisch geregelt:
#include <drivecell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell FlatFlap1(IN1_pin1, IN1_pin2);
void setup() {
FlatFlap1.Init();
}
void loop() {
FlatFlap1.Pulse(true, 10); // Pulse forward for 10ms
delay(500); // Wait before the next pulse
}
Wenn Sie unsere DriveCell-Bibliothek verwenden, können Sie dies direkt mit der Pulse-Funktion implementieren:
#include <drivecell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell FlatFlap1(IN1_pin1, IN1_pin2);
void setup() {
FlatFlap1.Init();
}
void loop() {
FlatFlap1.Pulse(true, 100); // Pulse for 100ms
delay(3000); // Wait before the next pulse
FlatFlap1.Pulse(true, 1000); // Pulse for 1000ms
delay(3000); // Wait before the next pulse
FlatFlap1.Pulse(true, 500); // Pulse for 500ms
delay(3000); // Warten vor dem nächsten Impuls
}
Die Funktion verstehen:
Pulse(bool direction, uint8_t ms_duration)
Richtung : true
(Norden) / false
(Süden)
ms_duration : Dauer des Impulses in Millisekunden
Mit kurzen Impulsen können Sie FlatFlap für Anwendungen mit schneller Betätigung steuern. Weitere Codebeispiele und technische Dokumentation finden Sie im DriveCell GitHub Repository !
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.