Hallo, ich habe mal eine Frage bzgl. der Ansteuerung eines Schrittmotors. Ich habe den Vollschritt-Betrieb soweit ausprogrammiert, also so, dass die beiden Spulenpaare immer die halbe Zeit positiv und die andere Zeit negativ bestromt werden und dabei zueinander um 90° phasenversetzt liegen. Wenn der Motor mal in Betrieb ist, läuft er sehr kraftvoll und verliert nach Augenmaß beurteilt auch keine Schritte. Probleme treten aber auf, wenn ich den Motor genau einen Schritt machen lassen möchte... In dem Fall läuft er gelegentlich garnicht an, bzw. verliert sehr gerne Schritte... Es kann ja wohl nicht die Lösung sein, immer mehr als einen Schritt machen zu müssen... Hier meine Ansteuerung: Es handelt sich um eine einfache H-Brücke (BA6845FS) der Motor ist ein 5V Typ und ich betreibe ihn an einem 12V Netzteil. Damit liege ich natürlich bereits an den Grenzen des Brückentreibers, aber bisher hat dieser sich noch nicht beschwert... Zeiten pro Bestromung: 25ms, also für vier Schritte 100ms. mfg
Stepper schrieb: > Probleme treten aber auf, wenn ich den Motor genau einen Schritt machen > lassen möchte... In dem Fall läuft er gelegentlich garnicht an, bzw. > verliert sehr gerne Schritte... Dann zeig mal dein Programm
Dann fang doch mal mit 200ms an und gehe dann je Schritt um z.B. je 5ms zurück.
Bist du sicher, daß du bei "Einem Schritt" weisst wie der Motor vorher steht? Das heisst du weisst mit welcher Polarität du welche Spule bestromen musst?
12V/5=2.4 -- Also alle 100ms nur 24ms Strom geben, oder bei 10ms nur 2.4ms Strom geben. 4 Schritte dauern dann 400 bzw 40ms, nicht aufgerundete 100 oder 10 ms. Für den ersten Schritt solltes du aber die doppelte Zeit nehmen.
Ich weiss, wo die Spule steht, weil es nur ein Testaufbau ist. Dort wo ich aufhöre, mache ich nachher wieder weiter, ergo liegt der Rotor in Bezug zum sich aufbauenden Drehfeld eigentlich primär richtig. Die Bestromungszeiten sind jeweils 25ms. Spule 1 hängt zwischen Output 11 und Output 12 Spule 2 hängt zwischen Output 21 und Output 22 25ms wie folgt: Out11 Low Out12 High Out21 Low Out22 High danach 25ms: Out11 High Out12 Low Out21 Low Out22 High danach 25ms: Out11 High Out12 Low Out21 High Out22 Low danach 25ms: Out11 Low Out12 High Out21 High Out22 Low Es handelt sich um einen Reichelt Schrittmotor, 5V, 200 Schritte (1,8°) Die Brücke kann ich Wahlweise an 12V oder eben an 5V hängen. Das macht irgendwie nicht die großen Unterschiede. Achja und was die Zeiten angeht, bis ca. 8ms kann man runtergehen, danach wird das Verhalten wirklich grottenschlecht. Also denke ich mit 25ms befinde ich mich im grünen Bereich...
Stepper schrieb: > Achja und was die Zeiten angeht, bis ca. 8ms kann man runtergehen, > danach wird das Verhalten wirklich grottenschlecht. 12V für einen Motor mit 5V Nennspannung ist nun auch wirklich nicht die Welt. Hast du dir mal mit einem Oszi den Phasenstrom, z.B. über einen Shunt, angeguckt?
Stepper schrieb: > Es handelt sich um einen Reichelt Schrittmotor, 5V, 200 Schritte (1,8°) Reichelt hat auch nur den einen - was soll diese Geheimniskrämerei
Vielleicht bekommt der Rotor ja bei dem "letzten" Schritt so viel Schwung, dass er sich etwas zu weit dreht? Das könnte vielleicht passieren, wenn Deine Pulsbreite der Ansteuerung genau passt, um den Rotor maximal zu beschleunigen, aber nicht auf der neuen Position festzuhalten...
Stepper schrieb: > danach 25ms: > Out11 Low Out12 High > Out21 High Out22 Low Heißt das etwa, dass du den Strom für den lezten Schritt nur 25ms anliegen hast und dann ausschaltest? Ein Schrittmotor braucht immer Strom, damit er seine Position hält.
Tja, damit will der TO wohl verhindern, dass ihm der Motor im Stillstand durchbrennt... Sinnvoller wäre natürlich, im Fahrbetrieb pemanent zu bestromen und im Stillstand per PWM den Haltestrom zu reduzieren. Im Fahrbetrieb wird bei höherer Geschwindigkeit der Maximalstrom des Motors sowieso (wegen der Induktivität) kaum erreicht werden, auch nicht mit 12 V.
Darst Du zurückfahren? Am Einfachsten ist es, wenn man das Drehfeld anlegt, kurz 15-20 Grad zurückfährt und dann den Motor vorbeschleunigt über den Berg fährt. Beim Überschreiten des Kipppunktes musst Du bereits beginnen, das Drehfeld abzubremsen, um ihn "weich ins Tal gleiten" zu lassen. Wenn Du diese Methodik sauber machst, bekommst Du eine Rastmomentkompensation, dass heisst der Motor wird "weich" und lässt sich mit minimalem mechanischen Drehmoment fahren. Man kann das soweit treiben, dass der Motor scheinbar gar keine Raststellungen mehr hast und ausläuft, wie ein Lager in einer Buchse. Dann kannst Du gegen den Motor dagegenpusten und er dreht sich. So richtig genau geht es aber nur, wenn Du die Wellenposition des Motors exakt kennst. Diese ist im Einzelfall aus der Stromsituation rückzugewinnen: http://www.freepatentsonline.com/EP2068436.html
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.