FlatFlap ist ein kompakter Klappenantrieb. In dieser Anleitung konzentrieren wir uns jedoch auf die Positionsregelung – das Halten der Klappe in einer festen Position mithilfe eines kontrollierten Arbeitszyklus. Diese Methode eignet sich für Anwendungen, bei denen die Klappe über längere Zeit in einem bestimmten Winkel verharren muss, anstatt kontinuierlich zu schwingen.
FlatFlap funktioniert, indem Strom durch die Spule geleitet wird, wodurch ein Magnetfeld erzeugt wird, das mit dem Magneten interagiert. Anstatt einen kurzen Impuls zu erzeugen oder die Rechteckwelle zu schwingen, verwenden wir hier Pulsweitenmodulation (PWM), um die Klappe im gewünschten Winkel zu halten.
Der Arbeitszyklus des PWM-Signals steuert die Stärke des Magnetfelds und verändert so den Winkel der Klappe.
Mehrere Faktoren beeinflussen die Positionsgenauigkeit und -stabilität:
Wenn Sie die DriveCell-Bibliothek. Das folgende Beispiel zeigt, wie verschiedene Positionen eingestellt werden:
#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);
}
Dieser Code passt den Arbeitszyklus schrittweise an, um die Klappe in verschiedenen Positionen zu halten.
Die Funktionen verstehen:
Init()
→ Initialisiert DriveCell und richtet die Eingangspins einDrive(bool direction, uint8_t power_percent)
true
(Norden) / false
(Süden)⚠ Hinweis: Die Drive()-Funktion verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.
Wenn Sie kein ESP32-Gerät verwenden, können Sie PWM in Arduino mit dem folgenden Code anpassen. Stellen Sie jedoch sicher, dass die Wellenformfrequenz korrekt eingestellt ist.
#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); // 25 % Arbeitszyklus
Verzögerung (5000);
}
Durch PWM kann die FlatFlap bestimmte Winkel über lange Zeiträume halten, was diese Funktion für Robotik, Haptik und Kunst nützlich macht. 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.