WebSites MotorStepperController

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