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
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