Forum: Mikrocontroller und Digitale Elektronik Welche Fehler bei Schrittmotor-Ansteuerung?


von Tex A. (tex)


Lesenswert?

Hallo Forum,
für ein kleines Zwischenprojekt habe ich mich ausnahmsweise mal mit 
Schrittmotoren auseinandergesetzt. Es war ein Experiment, insofern ist 
es nicht weiter tragisch, wenn es nicht funktioniert. Das Ergebnis ist 
jetzt allerdings doch etwas überraschend und enttäuschend.
Als Treiber muss ein L298N herhalten
Der Motor ist ein 17 HS 4401
Die Ansteuerung übernimmt ein Arduino micro.
Im ersten Anlauf habe ich für die Ansteuerung auf dem Arduino ein 
simples 4-bit Lauflicht programmiert.
Das war langsam, stockte allenthalben und der Motor war kraftlos. Punkt 
eins und zwei hatte ich erwartet.
Gerade als ich mich hinsetzen wollte, um das Timing über Interrupts zu 
steuern, stieß ich durch Zufall auf die Stepper.h für Arduino.
Das Timing der Schritte ist in jedem Fall besser als vorher.
Die maximale Geschwindigkeit von 60 U/min ist sehr mager.
Der Stromverbrauch ist monströs.
Der Kühlkörper am L298 ist am Limit.
Und der Motor hat das Drehmoment eines durchschnittlichen 
Sekundenzeigers einer Armbanduhr.
Außerdem sind immer zwei Ausgänge des Adruino gleichzeitig aktiv. Das 
passt mit meinem bisherigen Verständnis von der Funktion von 
Schrittmotoren nicht überein.
Das die Stepper.h schlecht ist, scheint mir unwahrscheinlich.
Die fehlende Kraft im Motor habe ich vermutlich der Wärmeentwicklung am 
Treiber zu verdanken.
Aber wo genau sind die Fehler?

von Rainer W. (rawi)


Lesenswert?

Tex A. schrieb:
> Aber wo genau sind die Fehler?

Du zeigst keinen Schaltplan, verlinkst kein Datenblatt vom Motor und 
verwendest ein Programm, dass keiner (außer dir) kennt.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Tex A. schrieb:
> Aber wo genau sind die Fehler?

Die freche Antwort wäre: Sitzen vor der Tastatur!
Die ehrliche Antwort wäre: Das weiß ich nicht.

Viele andere ohne den Schaltplan haben auch nur die Prosa zum rätseln.
Gar nicht so selten helfen Bilder des Aufbaus weiter.

Tex A. schrieb:
> Außerdem sind immer zwei Ausgänge des Adruino gleichzeitig aktiv. Das
> passt mit meinem bisherigen Verständnis von der Funktion von
> Schrittmotoren nicht überein.

Hier steht beschrieben, wie die Ausgänge des L298 reagieren:
https://www.strippenstrolch.de/1-2-9-motortreiber-298.html

Daher stellt sich die Frage, ob die EN-Eingänge (Freigabe) auch 
verwendet werden?
Es gab schon öfters im Forum Threads, wo etwas weggelassen wurde und 
daher nicht richtig funktionierte.

von Michael B. (laberkopp)


Lesenswert?

Tex A. schrieb:
> Als Treiber muss ein L298N herhalten

Fehler 1. Uralt. Ohne L297 keine Stromregelung. Kein 
Mikroschrittbetrieb. Umschaltung Vollschritt zu Halbschritt muss je nach 
Geschwindigkeit und Resonanz der uC machen.

> Der Motor ist ein 17 HS 4401 D

Fehler 2. 40Ncm, was erwartest du da für ein Drehmoment, hoher 
Wicklungswiderstand, hohe Induktivität was erwartest du da für ein 
Tempo, 5.7V hoher Spannungsbedarf.

1.5Arms Nennstrom mit einem Treiber der keine Stronregelung beherrscht 
und nur 2A Spitzenstrom kann.

Tex A. schrieb:
> simples 4-bit Lauflicht programmiert.

Fehler 3. Nur Wave-Betrieb.

Tex A. schrieb:
> Aber wo genau sind die Fehler

Du kaufst zielgenau das allerbilligszr und bist nicht bereit, dich mit 
den Grundlagen dessen auseinanderzusetzen.

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10

Besorge dir einen Treiber mit Mikroschritt und Stromregelung mit 
mindestens 3A wie TB6600 für deine Motoren, besser gleich andere Motoren 
mit geringerem Strangwiderstand und damit deutlich geringerer 
Induktivitat und Spannungsbedarf (deiner braucht 5.7Vrms) und eine 
ausreichende Spannungsquelle von sagen wir 36V (dann reichen 
(2*1.5*5.7)*2 = 34W also 1A pro gleichzeitig laufendem Motor

: Bearbeitet durch User
von Tex A. (tex)


Lesenswert?

Michael B. schrieb:

> Fehler 1. Uralt. Ohne L297 keine Stromregelung. Kein
> Mikroschrittbetrieb.
Ist das zwingend erforderlich? Tatsächlich sind mir 200 Schritte mehr 
als genug

> Fehler 2. 40Ncm, was erwartest du da für ein Drehmoment,
Nun, um die 40 Ncm. An der Aufgabe gemessen würden mir sogar die Hälfte 
reichen.

> Fehler 3. Nur Wave-Betrieb.
Ließe sich das etwas genauer erklären?
Wenn der Wave-Betrieb das ist, was ich erreiche, wenn ich die vier 
Eingänge des Treibers einzeln ansteuere, so würde mir das völlig 
reichen.
In diesem Modus erreicht der Motor auch das Drehmoment, dass ich mir 
erhoffte. Mit den zwei aktiven Eingängen wird er erst schwach.
Außerdem ist mir inzwischen aufgefallen, dass er nicht rückwärts läuft, 
was er aber laut Beispiel und Tutorial tun sollte.

> Du kaufst zielgenau das allerbilligszr und bist nicht bereit, dich mit
> den Grundlagen dessen auseinanderzusetzen.
Das bin ich schon, aber die Fülle der Informationen ist erschlagend und 
ich habe mich derer bedient, die ich gefunden und einfach reproduzieren 
konnte.
Tatsächlich gibt es sicherlich sehr anspruchsvolle Anwendungen, welche 
ein qualitativ hochwertigeres Equipment verlangen, aber meine ist 
vergleichsweise primitiv.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Tex A. schrieb:
> Ließe sich das etwas genauer erklären?

Hier wären die verschiedenen Betriebsarten am Diagramm erklärt:
https://www.gen2vdr.de/wirbel/cnc/stepper_motor_basics/index2.html

von Tex A. (tex)


Lesenswert?

@Michael.
Danke für den Tip.
Fehler gefunden.
Ich habe die Ausgänge fälschlicherweise so programmiert, wie sie im 
Wave-Betrieb angesteuert werden müssten, aber die Bibliothek und 
natürlich das Programm sind auf dem Halbschritt Betrieb ausgelegt.

Jetzt geht's.
Danke

von Günter L. (Firma: Privat) (guenter_l)


Lesenswert?

von Tex A. schrieb:
>Außerdem sind immer zwei Ausgänge des Adruino gleichzeitig aktiv.

Du brauchst zwei Rechteckspannungen wo eine immer 90°
phasenverschoben ist. Mit Ausgänge die immer gleichzeitig
aktiv sind kann das ja auch nicht funktionieren.

>Außerdem ist mir inzwischen aufgefallen, dass er nicht rückwärts läuft,

Die Richtungswechsel entstehen wenn eine Rechteckspannung
entweder 90° voreilt oder 90° hinterherhinkt.

von Michael B. (laberkopp)


Lesenswert?

Tex A. schrieb:
> die ich gefunden und einfach reproduzieren konnte.
> Tatsächlich gibt es sicherlich sehr anspruchsvolle Anwendungen, welche
> ein qualitativ hochwertigeres Equipment verlangen, aber meine ist
> vergleichsweise primitiv.

Irrweg.

Die 'primitive' Ansteuerung (nur geschaltete Wicklungen ohne 
Stroregelung) ist am anspruchsvollsten.
Man hat mit Resonanzen zu kämpfen, muss geschickt zwischen Vollschritt 
und Halbschritt wechseln, und das Drehmoment sackt schnell ab.

Ein Mikroschritttreiber mit Stromregelung an hoher Betriebsspannung 
hingehen macht die Sache einfach. Der Motor dreht damit einfach wie 
befohlen.

Tex A. schrieb:
> Wenn der Wave-Betrieb das ist, was ich erreiche, wenn ich die vier
> Eingänge des Treibers einzeln ansteuere, so würde mir das völlig
> reichen.

Offensichtlich ja nicht, denn es läuft ja nicht. Hättest du wenigstens 
die Grundlagen durchgelesen, wüsstest du das Wave keine Lösung sondern 
ein Irrtum ist.

von Frank O. (frank_o)


Lesenswert?

@Michael
Das war sehr interessant. Zumal ich hier auch noch einen Schrittmotor 
rumliegen habe und das mal testen wollte. Bisher hatte ich keinen Bedarf 
mich damit auseinander zu setzen
Aber du hast durch die guten Erklärungen schon mal (jedenfalls für mich) 
wesentliche Eckpunkte genannt, die man im Vorfeld beachten sollte.

Danke!

von Tex A. (tex)


Lesenswert?

> Besorge dir einen Treiber mit Mikroschritt und Stromregelung mit
> mindestens 3A wie TB6600 für deine Motoren,

Sehe ich das richtig, dass dann aber die Ansteuerung mit der Stepper.h 
so wie jetzt nicht mehr funktioniert?

von Michael B. (laberkopp)


Lesenswert?

Tex A. schrieb:
> Sehe ich das richtig, dass dann aber die Ansteuerung mit der Stepper.h
> so wie jetzt nicht mehr funktioniert?

Nein, du siehst das nicht richtig.

Die Arduino stepper Library erlaubt unipolare und bipolare (mit step und 
dir) Schrittmotoren.

Man muss sie natürlich richtig benutzen. Doku lesen !

Klüger wäre von vorne herein accelstepper zu verwenden.

von Tex A. (tex)


Lesenswert?

Ich habe mir jetzt doch aus Neugier noch einen DM542T als Treiber 
beschafft. Zugegeben eine Bereicherung.
Ich habe 200 Schritte und den Strom eingestellt.
(und natürlich auch ein bisschen mit den Microsteps rumgespielt)
Alles funktioniert, nur brauche ich jetzt 800 Schritte für eine 
Umdrehung.
Mit dem L298 waren es 200.
Das ist soweit kein Problem. Mich würde nur interessieren warum.

von Rüdiger B. (rbruns)


Lesenswert?

800 Microsteps nicht Steps. Wenn du mit Viertelsteps arbeitest braucht 
es 4 mal soviel Steps.

von Tex A. (tex)


Lesenswert?

Soweit verstanden, aber wäre das dann nicht die Einstellung 800 
Microsteps am Treiber? Wenn ich 800 einstelle, brauche ich für 1 
Umdrehung 3200 Signaländerungen an den µC Ausgängen (von mir laienhaft 
Steps genannt)

von Al. K. (alterknacker)


Lesenswert?

Ein Vollschritt kann doch stromlos gehalten werden.
Was ist mit den Viertelschritten,,?

MfG
ein 80 jähriger alterknacker

von Rainer W. (rawi)


Lesenswert?

Tex A. schrieb:
> Mich würde nur interessieren warum.

Da sich dein Motor wohl nicht geändert hat, wird irgendeine 
Software/Hardware/Produktbeschreibung in der Definition der 
Schrittzahlen neben der allgemein üblichen Festlegung liegen.
Pro elektrischer Umdrehung braucht ein Schrittmotor vier Vollschritte. 
Von der Anzahl der Polpaare hängt es dann ab, wieviele elektrische 
Umdrehungen pro mechanischer Drehung erfolgen.
https://www.nanotec.com/eu/de/knowledge-base/schrittmotor-animation?tx_nanotec_animation%5Binitial%5D=motor_4lead

Guck dir die Signale an den Motorwicklungen an. Dann erfährst du, wer 
seine Schritte wie zählt.

Tex A. schrieb:
> Der Stromverbrauch ist monströs.

Der Stromaufnahme von so einem Motor ist mit aktuellen Treibern wegen 
der Stromregelung im Stillstand und bei niedriger Schrittfrequenz genau 
so hoch, wie du ihn einstellst.
Der L298 alleine macht keine Stromregelung, d.h. du musst über die Wahl 
der Betriebsspannung dafür sorgen, dass die Spannung am Motor bei der 
Nennspannung des Motors bleit. Dein Motor darf daher mit dem L298 
alleine nur an 2.6V zzgl. der V_CE_sat betrieben werden.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Al. K. schrieb:
> Ein Vollschritt kann doch stromlos gehalten werden.
> Was ist mit den Viertelschritten,,?

Der springt dann auf den nächsten Vollschritt.

Daher haben Mikroschritttreiber einen 'hier Vollschrittposition 
erreicht' Ausgang.

Du hattest mit Schrittmotoren noch nicht viel zu tun, trotz deiner 80.

von Al. K. (alterknacker)


Angehängte Dateien:

Lesenswert?

Michael B. schrieb:
> Du hattest mit Schrittmotoren noch nicht viel zu tun, trotz deiner 80.

Habe zwar in Mengen welche ausgebaut,aber ein Einsatzgebiet außerhalb 
der Vollschritt Zone war noch nicht nötig.

Man kann doch auch alt werden, ohne ALLES getestet zu haben.
.. und möglich Kostenfrei.
;--))

Ein kleines Schrittmotor Model hängt hier noch an der wand.
Treiber und Motor aus einen alten Diskettenantrieb ausgebaut.
12V Schrittmotor/ 200 schritte, wird mit 5 V betrieben.

Unten ist eine Lichtschranke zur positionieren angebracht.
War ca 1995 ein schönes Übungsobjekt für die Kinder der AG.
;--))

MfG

Ein 80 Jähriger alter Knacker

P.S.
Meine Device, Elektronikschrott lebt...
und im Vollschritt vorwärts.;-))

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Günter L. schrieb:
> von Tex A. schrieb:
>>Außerdem sind immer zwei Ausgänge des Adruino gleichzeitig aktiv.
>
> Du brauchst zwei Rechteckspannungen wo eine immer 90°
> phasenverschoben ist. Mit Ausgänge die immer gleichzeitig
> aktiv sind kann das ja auch nicht funktionieren.

Bei Halbschrittbetrieb wäre es völlig normal, dass zwei Wicklungen 
gleichzeitig aktiv sind. Man sollte sich nur einig sein, was man tut.
In der o.g. Simulation von Nanotec kann  man sich ansehen, wann in den 
beiden Betriebsarten welche Spule betromt ist, was daraus für eine 
Statormagnetisierung folgt und wie der Rotor sich dann einstellt.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.