Fragen mit Bezug auf Thread Ansteuerung von BLDC Motoren für Nähmaschinen
Verfasst: Mittwoch 31. Januar 2024, 14:19
Moin,
ich möchte auch gern, wie hier diskutiert https://www.naehmaschinentechnik-forum. ... hp?t=11286 ,einen Schrittmotor als Antrieb verwenden. Ich möchte den genannten Thread aber nicht mit meinen Fragen zumüllen.
Ich denke, dass ich das beschriebe Vorgehen soweit erst mal verstanden habe, jedoch ist es für mich das erste Mal, das ich mich mit derlei Dingen beschäftige und meine Elektronikkentnisse sind auch eher rudimentär. Daher tauchen schon so einige Fragen auf, die für andere wohl eher banal sind. Bitte seht mir auch eventuell falsch verwendetes Vokabular nach.
Gekauft habe ich dieses Kit bestehend aus einem Nema 23 und einem DM556 Controller https://www.omc-stepperonline.com/de/1- ... 56t-23hs45. Das wäre jetzt wohl nicht Achims Wahl, ich hoffe es ist trotzdem ausreichend. Als Microcontroller möchte ich einen Arduino Uno verwenden der bei mir noch rumliegt.
Achim verwendet für die Stromversorgung des Microcontrollers einen Spannungwandler. Ist das zwingend, weil z.B.alle Stromkreise an der selben Masse liegen müssen, oder könnte man auch z.B. ein USB-Netzteil verwenden?
Der Motor ist mit einem Nennstrom von 3,5A pro Phase angegeben. Das entspricht dann dem am Controller einzustellenden Strom unter der RMS-Angabe (und nicht dem Peak-Wert) oder?
Bei der Suche nach PWM im Netz waren in den meisten Grafiken die Längen für High und Low gleich groß. Und das wird, wenn ich es richtig verstanden habe, auch in der Bedienungsanleitung des Motor-Controllers empfohlen. Hat es Nachteile, wenn das nicht so gemacht wird?
Ich frage deshalb, weil der von mir angedachte Weg das nicht garantieren kann. Mein Plan wäre zu Beginn des Loops aus dem Signal des noch zu besorgenden Pedals die aktuell gültige Dauer der Phase zu berechnen und dann zu prüfen wieviel Zeit seit der letzten Signaländerung verstrichen ist. Wenn der zuvor berechnete Wert überschritten ist ändere ich das Signal entsprechend. In jedem Loop wird also nur entweder High oder Low gesetzt (oder gar nichts). Im nächsten Loop könnte die errechnet Phasendauer eine andere sein.
In Beitrag 47 des oben genannten Thread wird erwähnt, dass das analoge Eingangssignal 1024 Schritte beträgt (per analogRead() am Pedal, oder?) das Ausgabesignal dann mit 256 Schritten aufgelöst wird. Das sind dann doch die Schritte aus denen ich die Phasenlänge errechne, oder nicht? Die Umrechnung von1024 auf 256 bedeutet ja aber einen extra Rechenschritt, warum nutzt man für die Berechnung nicht direkt die 1024er Schrittauflösung?
Mal abgesehen davon, dass bei niedrigerer Auflösung die Wahrscheinlichkeit etwas steigt, dass die Zeiten für High und Low gleich sind (vorige Frage).
Ist es nötig für den Motor Beschleunigungs- oder Abbremswerte zu berechnen? Im Grunde geht die Beschleunigung bzw. das Abbremsen doch durch das Pedal aus. Zumindest, wenn man nicht schon vor Programmbeginn auf dem Pedal steht. Oder kommt die Motorsteuerung nicht schnell genug dem Pedalweg hinterher?
Die minimale Zeit zwischen zwei Signalen beträgt laut Bedienungsanleitung des Motorcontrollers 2,5 Mikrosekunden. Was passiert, wenn die doch mal unterschritten wird? Kann das zu einem Schaden führen? Die einzige Situation die mir allerdings bislang einfällt und die zu solch kurzer Zeit führen könnte, wäre der Moment in dem der von micros() gelieferte Wert überläuft. Dann ist im nächsten loop die Zeit auf jeden Fall abgelaufen und das Signal wird geändert. Ob allerdings die Berechnungen zu loop-Beginn nicht sowiso schon mehr als 2,5 Mikrosekunden dauern weiß ich nicht.
Das sind nun doch ein paar (hoffentlich nicht komplett dämliche) Fragen mehr geworden (ein paar hätte ich schon noch ), ich hoffe das ist trotzdem OK.
Liebe Grüße
Thorsten
ich möchte auch gern, wie hier diskutiert https://www.naehmaschinentechnik-forum. ... hp?t=11286 ,einen Schrittmotor als Antrieb verwenden. Ich möchte den genannten Thread aber nicht mit meinen Fragen zumüllen.
Ich denke, dass ich das beschriebe Vorgehen soweit erst mal verstanden habe, jedoch ist es für mich das erste Mal, das ich mich mit derlei Dingen beschäftige und meine Elektronikkentnisse sind auch eher rudimentär. Daher tauchen schon so einige Fragen auf, die für andere wohl eher banal sind. Bitte seht mir auch eventuell falsch verwendetes Vokabular nach.
Gekauft habe ich dieses Kit bestehend aus einem Nema 23 und einem DM556 Controller https://www.omc-stepperonline.com/de/1- ... 56t-23hs45. Das wäre jetzt wohl nicht Achims Wahl, ich hoffe es ist trotzdem ausreichend. Als Microcontroller möchte ich einen Arduino Uno verwenden der bei mir noch rumliegt.
Achim verwendet für die Stromversorgung des Microcontrollers einen Spannungwandler. Ist das zwingend, weil z.B.alle Stromkreise an der selben Masse liegen müssen, oder könnte man auch z.B. ein USB-Netzteil verwenden?
Der Motor ist mit einem Nennstrom von 3,5A pro Phase angegeben. Das entspricht dann dem am Controller einzustellenden Strom unter der RMS-Angabe (und nicht dem Peak-Wert) oder?
Bei der Suche nach PWM im Netz waren in den meisten Grafiken die Längen für High und Low gleich groß. Und das wird, wenn ich es richtig verstanden habe, auch in der Bedienungsanleitung des Motor-Controllers empfohlen. Hat es Nachteile, wenn das nicht so gemacht wird?
Ich frage deshalb, weil der von mir angedachte Weg das nicht garantieren kann. Mein Plan wäre zu Beginn des Loops aus dem Signal des noch zu besorgenden Pedals die aktuell gültige Dauer der Phase zu berechnen und dann zu prüfen wieviel Zeit seit der letzten Signaländerung verstrichen ist. Wenn der zuvor berechnete Wert überschritten ist ändere ich das Signal entsprechend. In jedem Loop wird also nur entweder High oder Low gesetzt (oder gar nichts). Im nächsten Loop könnte die errechnet Phasendauer eine andere sein.
In Beitrag 47 des oben genannten Thread wird erwähnt, dass das analoge Eingangssignal 1024 Schritte beträgt (per analogRead() am Pedal, oder?) das Ausgabesignal dann mit 256 Schritten aufgelöst wird. Das sind dann doch die Schritte aus denen ich die Phasenlänge errechne, oder nicht? Die Umrechnung von1024 auf 256 bedeutet ja aber einen extra Rechenschritt, warum nutzt man für die Berechnung nicht direkt die 1024er Schrittauflösung?
Mal abgesehen davon, dass bei niedrigerer Auflösung die Wahrscheinlichkeit etwas steigt, dass die Zeiten für High und Low gleich sind (vorige Frage).
Ist es nötig für den Motor Beschleunigungs- oder Abbremswerte zu berechnen? Im Grunde geht die Beschleunigung bzw. das Abbremsen doch durch das Pedal aus. Zumindest, wenn man nicht schon vor Programmbeginn auf dem Pedal steht. Oder kommt die Motorsteuerung nicht schnell genug dem Pedalweg hinterher?
Die minimale Zeit zwischen zwei Signalen beträgt laut Bedienungsanleitung des Motorcontrollers 2,5 Mikrosekunden. Was passiert, wenn die doch mal unterschritten wird? Kann das zu einem Schaden führen? Die einzige Situation die mir allerdings bislang einfällt und die zu solch kurzer Zeit führen könnte, wäre der Moment in dem der von micros() gelieferte Wert überläuft. Dann ist im nächsten loop die Zeit auf jeden Fall abgelaufen und das Signal wird geändert. Ob allerdings die Berechnungen zu loop-Beginn nicht sowiso schon mehr als 2,5 Mikrosekunden dauern weiß ich nicht.
Das sind nun doch ein paar (hoffentlich nicht komplett dämliche) Fragen mehr geworden (ein paar hätte ich schon noch ), ich hoffe das ist trotzdem OK.
Liebe Grüße
Thorsten