MSC - Theorie
Übersicht
MC(MicroController, typisch
ESP32UnoBoard,
STM32F103/F407Board)
steuert/regelt über IOPorts
SMD(StepperMotorDriver, typisch
TB6600 oder
DM542T) einen
SM(StepperMotor, typisch NEMA11, NEMA17, NEMA19).
Basis-Kommunikation zwischen MC und PC findet über die Serielle Schnittstelle statt.
Über ein PC-TerminalProgramm sendet/empfängt der Benutzer Text-Commands/Events/Infos
zum/vom MicroController.
Zus&aum;tzliche PC-Software ermöglicht dem Benutzer eine
GUI(GraphicUserInterface)-
Kommunikation mit dem MicroController über Serielle/USB-Schnittstelle, in Erweiterung
auch über Bluetooth, Lan, WirelessLan und Mqtt.
Randbedingungen Hardware
* Steuersignale MC: Step und Direction
* Eingangssignale MC: CurrentSense
* Die Anzahl der anzusteuernden Motoren hängt von der Anzahl der zur Verfügung stehenden IOPins ab.
Ein Motor benötigt (minimal) zwei Output- und einen Input-Pin.
Randbedingungen Software
* Verwendete Compiler für MicroController:
ArduinoIDE und
VSCode
* Verwendete PC-Software(vorerst getestet unter Windows):
Python und
VS2019
Software MicroController
Anfahr- und Abfahr- Rampen
Sei \( N_{S}\) die Anzahl der insgesamt zu fahrenden Steps, \(N_U\) die Anzahl der Steps der Anfahrrampe
und \(N_D\) die Anzahl der Steps der Abfahrrampe.
Beziehungen
\(N_U\) gleich oder ungleich \(N_D, N_U \in \mathbb{N_0}, N_D \in \mathbb{N_0}\)
\(\boxed{R = \dfrac{200 stp}{2 \pi}}\) : typische StepperMotor-Auflösung in Schrittzahl pro Volldrehung
\(\boxed{f(t) = \dfrac{N_{stp}}{s}}\) : Frequenz der StepperPulse : Anzahl der Steps pro Sekunde
\(\boxed{P(t) = \dfrac{1}{f(t)}}\) : Periode zwischen StepperPulsen
\(\boxed{\omega(t) = 2 \pi f(t)}\) : Winkelgeschwindigkeit der Motorachse
Frequenz \(f\) und damit Periode \(P\) sind bei An- und Abfahrt zeitabhängig.
Bei der Motoransteuerung mit der für die Verfahrstrecke maximalen Drehzahl(\(f_H , \omega_H\), HochRampe)
bleibt die Motorfrequenz zeitlich konstant:
Fall 1: UpRamp
\(f_{Umin}(= 0)\) : UpRampStartfrequenz,
\(f_{Umax}\) : Endfrequenz UpRamp,
\(f_{Umin}(= 0) < f_{Umax}\) ,
\(f_U = f_U(t) , f_U \in [f_{Umin}, f_{Umax}]\)
Fall 2: HighRamp
\(f_H = f_{Umax}\)
Fall 3: DownRamp
\(f_{Dmax} = f_H = f_{Umax}\) : DownRamp Startfrequenz,
\(f_{Dmin}(= 0)\) : DownRamp Endfrequenz,
\(f_{Dmax} > f_{Dmin} (= 0)\) ,
\(f_D = f_D(t) , f_D \in [f_{Dmin}, f_{Dmax}]\)
Zeitlicher Verlauf der Step-Folge
Fall 1: \(\boxed{U_{stp} + D_{stp} <= N_{stp}}\)
Fall 2: \(\boxed{N_{stp} < U_{stp} + D_{stp}}\)
WebSites
Projekte
Elektronik
Esp32MotorStepperController
CsMotorStepperController
PyMotorStepperController