Magnetische Aktuatoren wie CoilPad und FlatFlap erzeugen mithilfe planarer Leiterplattenspulen ein schwaches Magnetfeld, das mit Magneten interagiert und elektrische in mechanische Energie umwandelt. DriveCell eignet sich aufgrund seiner geringen Größe und der benutzerfreundlichen Bibliothek ideal für die Ansteuerung dieser Aktuatoren.
Magnetische Aktuatoren funktionieren, indem Strom durch eine Spule geleitet wird, wodurch ein Magnetfeld entsteht, das mit benachbarten Magneten interagiert. Dadurch können sie vibrieren oder oszillieren.
Im Gegensatz zu herkömmlichen Gleichstrommotoren erfordern magnetische Aktuatoren einen schnellen Polaritätswechsel und eine präzise Steuerung, um effektiv zu funktionieren. Deshalb sind H-Brücken-Treiber wie DriveCell erforderlich.
Da magnetische Aktuatoren auf wechselnde Stromrichtungen angewiesen sind, reicht eine Standardtransistorschaltung nicht aus. Die DRV8837 H-Brücke in DriveCell ermöglicht den Stromfluss in beide Richtungen und ermöglicht so die volle Kontrolle über die Polarität und Intensität des Magnetfelds.
Bevor Sie Ihre Aktuatoren anschließen, müssen Sie sich unbedingt über die elektrischen Einschränkungen von DriveCell im Klaren sein:
Hinweis: Sowohl das CoilPad als auch die FlatFlap verbrauchen etwa 200 mA. Das bedeutet, dass Sie bis zu 8 Aktuatoren parallel anschließen und sie mit einer einzigen DriveCell antreiben können.
So löten/verdrahten Sie einen einzelnen CoilPad- oder FlatFlap-Aktuator an DriveCell:
Sie können mehrere Aktoren parallel schalten:
Bei dieser Konfiguration werden beide Aktuatoren synchron gesteuert, sodass sie gleichzeitig aktiviert werden.
Um die Aktuatorsteuerung zu vereinfachen, bietet DriveCell eine Softwarebibliothek. Nachfolgend finden Sie die wichtigsten Funktionen, die Sie benötigen:
Das folgende Beispiel zeigt, wie zwei Aktoren mit unterschiedlicher Intensität gesteuert werden:
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell Actuator1(IN1_pin1, IN1_pin2);
DriveCell Actuator2(IN2_pin1, IN2_pin2);
void setup() {
Actuator1.Init();
Actuator2.Init();
}
void loop() {
delay(3000);
Actuator1.Drive(1, 40); // Activate Actuator1 North-Polarity at 40% power
Actuator2.Drive(1, 80); // Aktiviere Actuator2 Nordpolarität bei 80% Leistung
Verzögerung (3000);
Actuator1.Drive(0, 50); // Aktiviere die Südpolarität von Actuator1 bei 50% Leistung
Actuator2.Drive(1, 50); // Aktiviere Actuator2 Nordpolarität bei 50% Leistung
Verzögerung (3000);
Actuator1.Drive(0, 0); // Deaktiviere Actuator1
Actuator2.Drive(0, 100); // Aktiviere Actuator2 Südpolarität bei 100% Leistung
}
Die Funktionen verstehen:
Init()
→ Initialisiert DriveCell und richtet die Eingangspins einDrive(direction, power)
→ Steuert den Aktuator:
direction
→ 1
(Norden) / 0
(Süden)power
→ Magnetfeldstärke (0 bis 100 %)Hier ist ein weiteres Beispiel, bei dem wir zwei FlatFlaps konfigurieren und sie mit unterschiedlicher Geschwindigkeit flattern lassen:
# include <DriveCell.h> # define IN1_pin1 2 # define IN1_pin2 3 # define IN2_pin1 5
# definieren IN2_pin2 6 Antriebszelle FlatFlap1 ( IN1_pin1 , IN1_pin2 ) ; Antriebszelle FlatFlap2 ( IN2_pin1 , IN2_pin2 ) ; uint16_t Klappenzähler = 0 ; void setup ( ) { FlatFlap1 .Init ( ) ; FlatFlap2 .Init ( ) ; FlatFlap1 . Tone ( ) ; FlatFlap2 . Tone ( ) ; } void -Schleife ( ) { Verzögerung ( 1 ) ; Klappenzähler ++ ; wenn ( Klappenzähler < 2000U ) { FlatFlap1.Run ( 0 , 100 , 100 ) ; FlatFlap2.Run ( 0 , 100 , 100 ) ; } sonst wenn ( Klappenzähler < 8000U ) { FlatFlap1.Run ( 1 , 100 , 1000 ) ; FlatFlap2.Run ( 1 , 100 , 1000 ) ; } anders { Klappenzähler = 0U ; FlatFlap1.Drive ( 0 , 100 ) ; FlatFlap2.Drive ( 1 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1.Drive ( 1 , 100 ) ; FlatFlap2.Drive ( 1 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1.Drive ( 1 , 100 ) ; FlatFlap2.Drive ( 0 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1.Drive ( 1 , 100 ) ; FlatFlap2.Drive ( 1 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1.Drive ( 0 , 100 ) ; FlatFlap2.Drive ( 0 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1.Drive ( 1 , 100 ) ; FlatFlap2.Drive ( 1 , 100 ) ; Verzögerung ( 500 ) ; FlatFlap1 . Tone ( ) ; FlatFlap2 . Tone ( ) ; } }
Die Funktionen verstehen:
Run(smooth, power, speed_ms)
→ Lassen Sie die FlatFlap entweder in einer Rechteckwelle oder einer sanfteren PWM-Welle oszillieren.
smooth
→ 1
(PWM-Welle) / 0
(Rechteckwelle)power
→ Magnetfeldstärke (0 bis 100 %)power
→ Flip-Geschwindigkeit in Millisekunden ⚠ Hinweis: Die Run() & Drive()
Funktion verwendet eine Hochgeschwindigkeits-PWM-Timer, wodurch er nur mit CodeCell- und ESP32-basierten Geräten kompatibel ist.
Unten sehen Sie ein weiteres Beispiel, das mit anderen Mikrocontrollern wie dem Arduino Uno verwendet werden kann :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell myActuator(IN1_pin1, IN1_pin2);
void setup() {
myActuator.Init();
}
void loop() {
myActuator.Run(1000); // Activate actuator for 1 second, then reverse
}
In diesem Beispiel wird der Aktuator 1 Sekunde lang mit Nordpolarität aktiviert, bevor die Polarität umgekehrt wird. eine oszillierende Rechteckwellenbewegung.
Das winzige DriveCell-Modul macht die Steuerung magnetischer Aktuatoren einfach und benutzerfreundlich! 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.