MotorCell eignet sich nicht nur für kontinuierliche Bewegung, sondern kann auch für kurze Bewegungsimpulse verwendet werden. Dies ist besonders nützlich für kinetische Kunstprojekte, bei denen kontrollierte, rhythmische Bewegungen beeindruckende visuelle Effekte erzeugen können. Durch Pulsieren des Motors für jeweils wenige Millisekunden können Sie koordinierte Dreheffekte über mehrere Motoren hinweg erzielen.

Dieses Beispiel zeigt, wie sechs Motoren jeweils 2000 Millisekunden (2 Sekunden) lang gepulst werden, wodurch ein sequentieller Dreheffekt entsteht. Die Funktion Pulse(IN_pinX, pulse_ms) aktiviert jeden Motor für eine festgelegte Dauer, bevor zum nächsten übergegangen wird.
#include <MotorCell.h>
#define IN_pin1 1
#define IN_pin2 2
#define IN_pin3 3
#define IN_pin5 5
#define IN_pin6 6
#define IN_pin7 7
#define pulse_ms 2000
int motor_num = 0;
MotorCell myMotorCell(1,2,3);
void setup() {
}
void loop() {
delay(100);
motor_num++;
switch (motor_num) {
case 1:
myMotorCell.Pulse(IN_pin1, pulse_ms); /* Pulse motor 1 for 2000ms */
break;
case 2:
myMotorCell.Pulse(IN_pin2, pulse_ms); /* Pulse motor 2 for 2000ms */
break;
case 3:
myMotorCell.Pulse(IN_pin3, pulse_ms); /* Pulse motor 3 for 2000ms */
break;
case 5:
myMotorCell.Pulse(IN_pin5, pulse_ms); /* Pulse motor 5 for 2000ms */
break;
case 6:
myMotorCell.Pulse(IN_pin6, pulse_ms); /* Pulse motor 6 for 2000ms */
break;
case 7:
myMotorCell.Pulse(IN_pin7, pulse_ms); /* Pulse motor 7 for 2000ms */
motor_num = 0; /* Reset the sequence */
break;
}
}
motor_num verfolgt, welcher Motor derzeit aktiv ist.motor_num und wählt den entsprechenden Motor aus.Pulse(IN_pinX, pulse_ms) wird verwendet, um jeden Motor 2 Sekunden lang zu aktivieren, bevor zum nächsten übergegangen wird.pulse_ms , um die Drehzeit jedes Motors anzupassen.Bereit zum Experimentieren? Holen Sie sich noch heute eine MotorCell und sehen Sie sich das MotorCell GitHub Repository für weitere Codebeispiele und technische Dokumentation an !
MotorCell nutzt den dreiphasigen Gegen-EMK-Regler BD67173NUX mit sensorlosem Antriebssystem und ermöglicht die Drehzahlregelung über einen PWM-Eingangssignal-Tastgrad. Der IN-Pin ist standardmäßig auf Low eingestellt, sodass der Motor bei High-Pegel (2,5–5 V) mit voller Drehzahl läuft. Sie können die Drehzahl in 1.000-U/min-Schritten über den Tastgrad anpassen oder direkt die Funktionen der MotorCell-Bibliothek nutzen.

Installieren Sie zunächst die MotorCell-Bibliothek aus dem Arduino Library Manager:
Die Bibliothek enthält Beispiele, die Ihnen den schnellen Einstieg in die MotorCell-Steuerung erleichtern.
Wir beginnen mit der Drehzahlregelung über die Spin-Funktion. Diese Funktion passt die Motordrehzahl auf den gewünschten Prozentsatz seiner maximalen Leistung an und gibt den aktuellen Drehzahlwert aus. Dieser Wert wird zur einfachen Fehlersuche auch automatisch auf dem seriellen Monitor angezeigt. Sollte der Motor blockieren, startet er automatisch neu.
#include <MotorCell.h>
#define IN_pin1 2
#define OUT_pin2 3
#define FR_pin2 1
MotorCell myMotorCell(IN_pin1, OUT_pin2, FR_pin2); /* Configure the MotorCell pins */
void setup() {
Serial.begin(115200); /* Set up serial - Ensure Tools/USB_CDC_On_Boot is enabled */
myMotorCell.Init(); /* Initialize the MotorCell */
}
void loop() {
uint16_t MotorRPM = myMotorCell.Spin(25); /* Geschwindigkeit auf 25 % der Maximalgeschwindigkeit einstellen */
}
⚠ Hinweis: Für diese Funktion empfehlen wir die Verwendung eines ESP32-Geräts wie der CodeCell , um Verzögerungen beim Lesen der RPM zu vermeiden
Das folgende Beispiel zeigt, wie die Drehrichtung des Motors bei voller Drehzahl alle 5 Sekunden umgekehrt wird. Die Funktion MaxSpin stellt den Motor auf Maximaldrehzahl ein, während die Funktion ReverseSpin die Drehrichtung ändert. Dabei wechselt die Drehung im und gegen den Uhrzeigersinn mit einer Verzögerung von 5 Sekunden zwischen den Richtungswechseln.
#include <MotorCell.h>
#define IN_pin1 2
#define OUT_pin2 3
#define FR_pin2 1
MotorCell myMotorCell(IN_pin1, OUT_pin2, FR_pin2); /* Configure the MotorCell pins */
void setup() {
Serial.begin(115200); /* Set up serial - Ensure Tools/USB_CDC_On_Boot is enabled */
myMotorCell.Init(); /* Initialisiere die Motorzelle */
}
void-Schleife() {
myMotorCell.MaxSpin(); /* Motor auf Höchstgeschwindigkeit einstellen */
myMotorCell.ReverseSpin(); /* Drehrichtung des Motors umkehren */
delay(5000); /* 5 Sekunden warten */
myMotorCell.MaxSpin(); /* Maximalgeschwindigkeit beibehalten */
myMotorCell.ReverseSpin(); /* Richtung erneut umkehren */
delay(5000); /* Warte weitere 5 Sekunden */
}
Dieses letzte Beispiel implementiert einen PID-Regler, um die Motordrehzahl mithilfe der SpinPID-Funktion auf die gewünschte Drehzahl zu regeln. Der PID-Regler gleicht Störungen und Lastschwankungen dynamisch aus und gewährleistet so einen reibungslosen Betrieb. Sollte der Motor blockieren, startet die Funktion ihn automatisch neu und benachrichtigt Sie, wenn die Zieldrehzahl nicht erreicht wird. Dies wird zur einfachen Fehlerbehebung automatisch auf dem seriellen Monitor angezeigt.
#include <MotorCell.h>
#define IN_pin1 2
#define OUT_pin2 3
#define FR_pin2 1
MotorCell myMotorCell(IN_pin1, OUT_pin2, FR_pin2); /* Konfigurieren Sie die MotorCell-Pins */
void setup() {
Serial.begin(115200); /* Seriell einrichten – Sicherstellen, dass Tools/USB_CDC_On_Boot aktiviert ist */
myMotorCell.Init(); /* Initialisiere die Motorzelle */
}
void-Schleife() {
uint16_t MotorRPM = myMotorCell.SpinPID(15000); /* Zieldrehzahl mit PID auf 15.000 setzen */
}
⚠ Hinweis: Die Funktion SpinPID () verwendet eine Hochgeschwindigkeits-PWM-Timer, wodurch er nur mit CodeCell- und ESP32-basierten Geräten kompatibel ist.
Mit der installierten MotorCell-Bibliothek können Sie Geschwindigkeit und Richtung problemlos steuern und die Drehzahl überwachen!
Bereit zum Experimentieren? Holen Sie sich noch heute eine MotorCell und sehen Sie sich das MotorCell GitHub Repository für weitere Codebeispiele und technische Dokumentation an !
Das wellenlose Design von MotorCell sorgt für schlanke Bauweise und einfache Integration. Der Rotor besteht aus 3,3 mm starkem Aluminium mit Rändelung am Rand, die eine direkte Einpressmontage in die Rotorzähne für eine sichere Verbindung ermöglicht.

Für den Einbau von Presspassungen empfehlen wir einen Innendurchmesser von 16,4 mm bis 16,6 mm, abhängig von der Toleranz Ihres 3D-Druckers. Nach dem Drucken drücken Sie das Teil einfach auf die Zähne des Rotors, um es zu fixieren.
Für zusätzliche Sicherheit kann Sekundenkleber auf die Rotorzähne aufgetragen werden. Achten Sie darauf, dass der Kleber nur seitlich aufgetragen wird und nicht in die Nähe des Lagers der Motorzelle gelangt.

Eine Vielzahl von 3D-gedruckten Halterungen finden Sie im MotorCell GitHub-Repository: 👉 MotorCell 3D-Halterungen
Beispiele hierfür sind:
Unser Ziel ist es, die Integration von MotorCell in Ihre Projekte so nahtlos wie möglich zu gestalten.
Bereit zum Experimentieren? Holen Sie sich noch heute eine MotorCell und sehen Sie sich das MotorCell GitHub Repository für weitere Codebeispiele und technische Dokumentation an !
Bei Projekten, die Hochgeschwindigkeitsbewegungen in einem kompakten Formfaktor erfordern, kann die Integration herkömmlicher bürstenloser Motoren aufgrund ihrer Größe und Komplexität schwierig sein. Deshalb ist MotorCell einzigartig, da es Rotor, Stator und Treiber in einem einzigen, ultrakompakten Modul vereint.
In diesem Beitrag untersuchen wir das Design, die Treiberfunktionalität und die Integration der MotorCell in Ihre Projekte.

MotorCell ist der kleinste kernlose Hochgeschwindigkeits-PCB-Motor mit planaren PCB-Wicklungen und integrierter sensorloser Steuerung, wodurch zusätzliche Sensoren überflüssig werden! Durch die Integration aller Komponenten in ein einziges Modul bietet er eine winzige und kompakte Lösung für Hersteller und Entwickler, die an Anwendungen arbeiten, die eine Hochgeschwindigkeits-Motorsteuerung erfordern.
MotorCell wurde für Anwendungen mit niedrigem Drehmoment und hoher Geschwindigkeit entwickelt, unterstützt PWM-basierte Geschwindigkeitsregelung und arbeitet nahtlos mit der MotorCell-Bibliothek zusammen, die eine vorgefertigte PID-Steuerung für CodeCell und andere ESP32-basierte Geräte enthält.
Der PCB-Stator besteht aus einer sechslagigen FR4-Platine mit sechs sternförmig verbundenen Kupferwicklungen. Dadurch ist der Motor ein dreiphasiger bürstenloser Axialflussmotor. Diese Motoren müssen mit bestimmten Takten versorgt werden, um eine Kommutierungswellenform zu erzeugen und den magnetischen Rotor oben zu drehen.
Aus diesem Grund verwendet MotorCell den Chip BD67173NUX auch als dreiphasigen Gegen-EMK-Regler. Er ermöglicht eine sensorlose Kommutierung, sodass keine Hall-Sensoren erforderlich sind. Dieser Treiber ermöglicht Drehzahlanpassungen über den PWM-Tastgrad des Eingangssignals mit einer Auflösung von etwa 1.000 U/min. Der IN-Pin ist standardmäßig auf Low-Pegel eingestellt, sodass der Motor bei High-Pegel (2,5 V–5 V) mit maximaler Drehzahl läuft.
Wenn der Motor zum Stoppen gezwungen wird, wechselt er in einen 5-Sekunden-Sperrschutzmodus, der sofort zurückgesetzt werden kann, wenn PWM auf 0 % gesetzt und neu gestartet wird – dies wird automatisch von der Spin-Funktion der MotorCell-Bibliothek verwaltet.
Wir sind überzeugt, dass der entscheidende Vorteil von PCB-Motoren in ihrer nahtlosen Integration mit der Elektronik liegt, wodurch zusätzliche Leiterplatten überflüssig werden. Deshalb haben wir es dank des Open-Source-Designs einfacher gemacht, den Stator direkt in Ihre individuelle Leiterplatte zu integrieren – hier erhältlich .
Der Bau eines Hochgeschwindigkeitsrotors bleibt jedoch eine komplexe Herausforderung. Zur Vereinfachung können Sie den Rotor separat erwerben. So können Sie Ihrer Platine mühelos einen PCB-Motor hinzufügen, um ein kompakteres Design zu erzielen und gleichzeitig eine zuverlässige Rotorkonfiguration zu gewährleisten!

So beginnen Sie mit Arduino:
Mit der installierten MotorCell-Bibliothek können Sie Geschwindigkeit und Richtung problemlos steuern und die Drehzahl überwachen. In unseren anderen Tutorials wird dies ausführlicher erläutert.
Bereit zum Experimentieren? Holen Sie sich noch heute eine MotorCell und sehen Sie sich das MotorCell GitHub Repository für weitere Codebeispiele und technische Dokumentation an !
MotorCell ist ein ultrakompakter, wellenloser PCB-Motor, der für Anwendungen mit hoher Geschwindigkeit und niedrigem Drehmoment entwickelt wurde. Mit seinem innovativen Pfannkuchendesign und den planaren PCB-Wicklungen ist MotorCell perfekt für Robotik, Kunstinstallationen und Heimwerkerprojekte geeignet. Dieser Motor vereinfacht die Integration durch sensorlose Steuerung mit PWM-Geschwindigkeitsanpassungen.

In diesem Tutorial behandeln wir:
Was ist MotorCell?
Die MotorCell erfindet das Motordesign neu, indem Rotor, Stator und Treiber in einer einzigen flachen Leiterplatte integriert werden. Diese einzigartige Struktur:
MotorCell ist ideal für Anwendungen, die kleine, leichte und kompakte Motoren erfordern, wie etwa kleine Roboter, kinetische Kunst oder sogar tragbare Geräte.
Einrichten Ihres Motors

Führen Sie zunächst die folgenden Schritte aus:
Pins:
Öffnen Sie die Arduino IDE, gehen Sie zu Sketch > Include Library > Manage Libraries , suchen Sie nach „MotorCell“ und installieren Sie es. Fügen Sie es dann in Ihren Code ein und richten Sie Ihre Pins ein:
#include "MotorCell.h"
#define IN_PIN 2
#define OUT_PIN 3
#define FR_PIN 1
MotorCell myMotorCell(IN_PIN, OUT_PIN, FR_PIN);
void setup() {
myMotorCell.Init(); // Initialize the MotorCell
}
Funktionen der MotorCell-Bibliothek
Hier sind die Kernfunktionen der MotorCell-Bibliothek:
myMotorCell.Init();
uint16_t rpm = myMotorCell.Spin(50); // Spin at 50% speed
uint16_t rpm = myMotorCell.SpinPID(12000); // Maintain 12,000 RPM
myMotorCell.ReverseSpin();
Pulse(uint8_t p_pin, uint8_t ms_duration): Sendet einen kurzen Impuls für eine bestimmte Dauer (in Millisekunden) an den angegebenen Pin. Nützlich für schnelle Bewegungsausbrüche oder kurzzeitige Signale.
myMotorCell.Pulse(FR_PIN, 50); // Sends a 50ms pulse to the FR_PIN
uint16_t currentRPM = myMotorCell.RPMRead();
myMotorCell.MaxSpin();
Beispielprojekt: Drehzahlüberwachung
Hier ist ein einfaches Projekt für den Einstieg:
#include "MotorCell.h"
#define IN_PIN 2
#define OUT_PIN 3
#define FR_PIN 4
MotorCell myMotorCell(IN_PIN, OUT_PIN, FR_PIN);
void setup() {
Serial.begin(115200);
myMotorCell.Init();
}
void loop() {
uint16_t rpm = myMotorCell.Spin(50); // Mit 50 % Geschwindigkeit drehen
}
Weitere Beispiele sind auf GitHub verfügbar. Wenn Sie jedoch Fragen zu MotorCell haben, können Sie sich gerne an uns wenden !
Ein PCB-Motor ist eine innovative Lösung, die die Mechanik des Motors in die elektronischen Komponenten integriert und dabei die PCB selbst als Struktur des Motors nutzt.
Was ist ein PCB-Motor?
Ein PCB-Motor ist ein einzigartiger Motortyp, der die Kupferspuren auf einer Leiterplatte (PCB) nutzt, um ein Magnetfeld zu erzeugen, das den Motor antreibt. Dieses Konzept ist davon inspiriert, wie Funksysteme PCB-Spuren als Antennen verwenden. Dasselbe Prinzip wird angewendet, um ein Magnetfeld zu erzeugen, das stark genug ist, um einen Rotor zu drehen. Dieser Motortyp ist als bürstenloser Axialflussmotor bekannt, bei dem der PCB-Stator und der Rotor parallel ausgerichtet sind.
Entwurf und Aufbau eines PCB-Motors
Der erste Schritt bei der Entwicklung eines PCB-Motors ist die Entwicklung der PCB-Statorspulen. Bei herkömmlichen Motoren bestehen diese Spulen häufig aus Draht, der zu dichten, dreidimensionalen Formen gewickelt ist. Bei einem PCB-Motor werden die Spulen stattdessen als flache Spiralbahnen hergestellt, die auf die Schichten einer PCB gedruckt werden.

Eine der Herausforderungen dieser Planarmotoren besteht darin, genügend Windungen in den kleinen verfügbaren Raum zu bringen, um einen ausreichenden magnetischen Fluss zu erzeugen. Diese Spulen müssen in einer Stern- oder Dreieckkonfiguration verbunden werden, um ein dreiphasiges System zu erzeugen. In unserem 6-schlitzigen, sternkonfigurierten MotorCell- Design konnten wir die Spulen auf vier Schichten stapeln und zwei zusätzliche Schichten für den Controller nutzen, um das erforderliche Magnetfeld zum Drehen des Rotors zu erzeugen.
Im Laufe der Jahre haben wir auch gelernt, dass das Design des Rotors entscheidend für die Verbesserung der Motoreffizienz ist. Es ist wichtig, hochwertige Keramikkugellager zu verwenden und die Lager präzise auszurichten, um die optimale mechanische Lösung zu erreichen. Dies erfordert normalerweise Spezialwerkzeuge, daher bieten wir den Rotor der MotorCell auch einzeln an, sodass Sie ihn problemlos in Ihre benutzerdefinierte Leiterplatte integrieren können.
Synchronisierung im PCB-Motor erreichen
Einer der wichtigsten Aspekte beim Antrieb eines bürstenlosen Motors ist die Sicherstellung, dass der Rotor mit dem elektromagnetischen Feld des Stators synchronisiert bleibt. Bei herkömmlichen Motoren mit Bürsten wird die Synchronisation mechanisch durch die Bürsten selbst gesteuert. Bei einem dreiphasigen bürstenlosen Motor wie einem PCB-Motor ist jedoch eine sensorische Rückmeldung erforderlich, damit der Motor reibungslos läuft.
Die Gegen-EMK wird normalerweise als Rückkopplung verwendet, um die Motordrehzahl zu steuern. Die Gegen-EMK ist die Spannung, die vom rotierenden Motor selbst erzeugt wird und die gemessen werden kann, um die Rotordrehzahl zu bestimmen. Diese Informationen werden dann in die Steuerelektronik des Motors eingespeist und stellen sicher, dass die Statorspulen synchron mit der Rotorbewegung angetrieben werden. Bei der MotorCell wird all dies direkt vom integrierten Chip gehandhabt, was den Prozess vereinfacht.

Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.