Forum: Mikrocontroller und Digitale Elektronik Schrittmotor vibriert nur am EasyDriver (Allegro A3967 )


von Xenotime (Gast)


Lesenswert?

Hallo,

das ist mein erster Beitrag und hoffe das mir jemand helfen kann.

Momentan baue ich einen Astronachführung gemäß folgendem Beispiel:
http://fstop138.berrange.com/2014/01/building-an-barn-door-mount-part-1-arduino-stepper-motor-control/

Der Motor soll mir eine M8 Trapzespindel antrieben. Ich brauche weder 
einen hohen Drehmoment noch eine hohe Geschwindigkeit. Wichtig für mich 
ist ein ruhiger Lauf und geringer Stromverbrauch, da die Lösung portabel 
sein soll.

Das ganze wird von 8 AA Batterien mit Strom versorgt also theoretisch 
12V ~ 2A.

Ich verwende diesen NoName Schrittmotor:

Nema 17 standard
Step angle 1.8°
3.4 V
1.7 A/Phase
Resistance 2 Ohm
Inductivity 3 mH
4000g/cm torque



Gesteuert wird der Motor von einem Easydriver v4.4 und als Schnitstelle 
dient mir ein Arduino Uno Rev3.


Wenn ich den Aufbau in Betrieb nehme vibriert mein Motor nur, am Anfang 
hat er sich auch sporadisch gedreht aber reagierte auf keine Befehle. 
Mittlerweile dreht er sich nicht mehr. Ich habe leide rmomentan kein 
passendes Netzteil da um die Batterien als Fehlerquelle auszuschließen. 
Wennich die Spannung der Batterien messe liegen 6 bei 1.4 V und 2 bei 
1.2 V, von daher nicht mehr taufrisch.

Die Phasen habe ich mehrfaxch geprüft und diese stimmen. Momentan ist 
der easydriver im microstepping modemit 8 Mikorschritten.

Da der easydriver nur 150 bis maximal 750 mA pro Phase ausgeben kann, 
ist meine Frage muss ich einen kleineren Motor nehmen, oder meine 
Spannungsversorgung mögglicherweise auf einen Bleigelakku mit 12V und 
9000 mAh ändern?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Xenotime schrieb:
> Da der easydriver nur 150 bis maximal 750 mA pro Phase ausgeben kann,
> ist meine Frage muss ich einen kleineren Motor nehmen, oder meine

 a) Wenn du erst die Spannungsversorgung angeschlossen hast und danach
    den Motor, kannst du Easy wahrscheinlich zum Abschied küßen.
 b) Da du den Maximalstrom um das Doppellte überschritten hast,
    kannst ihn wahrscheinlich nochmals zum Abschied küßen...

: Bearbeitet durch User
von Werner M. (Gast)


Lesenswert?

Xenotime schrieb:
> Ich brauche weder einen hohen Drehmoment noch eine hohe Geschwindigkeit.
Ob dein Antrieb ein hohes Drehmoment braucht, hängt von der Relation zur 
Leistung des Motors ab. Gleiches gilt für die Geschwindigkeit.

Einen solchen Schrittmotor mit AA-Zellen zu betreiben, ist allerdings 
kaum möglich. Wenn der vernünftig laufen soll, sollte der Spulenstrom 
schon bei mindestens 1A liegen und eine typisch Versorgungsspannung 
wären 20V, mit 12V läuft er bei nicht so hoher Drehzahl sicher auch 
schon - dazu müßte man im Datenblatt mal einen Blick auf die 
Drehmomentkurve werfen.

von Werner M. (Gast)


Lesenswert?

Marc Vesely schrieb:
> b) Da du den Maximalstrom um das Doppellte überschritten hast,
>     kannst ihn wahrscheinlich nochmals zum Abschied küßen...

Der Maximalstrom wird vom A3967 bestimmt. Da hat der Motor überhaupt 
nichts mitzureden. Guck mal ins Datenblatt.

von Ernst O. (ernstj)


Lesenswert?

Wenn eine AA Zelle 1.2 V Leerlaufspannung hat, ist sie leer und wird bei 
Belastung hochohmig. Damit kann man keinen Hering vom Teller ziehen.

Ich glaube nicht, dass etwas anderes kaputt ist. Deer 
Schrittmotortreiber bestimmt, wieviel Strom fliesst, nicht der 
Schrittmotor. Der Treiber soll nicht mehr Strom durch den Motor schieben 
als dieser verträgt. Es kann allerdings sein dass du einen stärkeren 
Treiber brauchst.

von Xenotime (Gast)


Lesenswert?

Vielen Dank für die Antworten.

Habe mittlerweile ein Problem gefunden:

Ich hatte dirction und step verwechselt. Jetzt läuft der Motor, ruckelt 
aber sehr, das Ruckeln ist am geringsten wenn ich ihn nur mit 150mA 
betreibe, bei mehr wird es immer ruckeliger bis er stehen bleibt. Wenn 
ich den Motor auf Stop setzt, bleibt er stehen, gibt aber ein 
hochfreuqentes Pfiepen von sich.
Der Controller wird auch relativ heiß.

Ich habe jetzt ein altes Nokia-Nnetzteil umgelöstet welches 5VDC an 890 
MA liefert, damit läuft der Motor wie oben beschrieben. Ich werde mich 
mal nach einem vernüftigen 12V Netzteilo morgen umsehen und darauf 
basierend meinen Akku wählen. Da ich den Arduino auch mit dem gleihen 
Netzteil Vvrsorge bin ich allerdings auf 12V limitiert.

Ich überlege mir auch einen andern Motor zu holen der an 4-7 V ca 0.3 
bis 0.6 A pro Spule zieht. Könnte mir das einen ruhigeren Lauf bringen 
wenn ich als Versorgung 12V und mindestens 2A einetze? Kann mir da 
jemand einen Motor empfehlen?

von Easylife (Gast)


Lesenswert?

Ich denke mal dein Treiber ist zu schwach.
Wenn der Motor 1.7 A/Phase will, und der Treiber gerade mal für 9%-41% 
davon ausgelegt ist, hast du ein Problem.
Im Zweifel geht auch der Treiber dabei direkt hopps.

von Werner M. (Gast)


Lesenswert?

Easylife schrieb:
> Im Zweifel geht auch der Treiber dabei direkt hopps.

Wie bitte soll der Treiber dabei hopps gehen. Bestimmt nicht durch den 
Strom, den er selber festlegt, solange er ausreichend gekühlt ist und 
die Referenzspannung für den DAC ok ist. Was meinst du, wozu die 
Sense-Widerstände gut sind.

von Carsten R. (kaffeetante)


Lesenswert?

Im Easydriver steckt ein A3967. Der überwacht auch den Strom und 
schaltet diesen beim Überschreiten den Strom ab. Darum ruckelt es nur.

von Ernst O. (ernstj)


Lesenswert?

Carsten R. schrieb:
> Im Easydriver steckt ein A3967. Der überwacht auch den Strom und
> schaltet diesen beim Überschreiten den Strom ab. Darum ruckelt es nur.

Nein.

Schrittmotore springen ruckartig von einer Rastposition zur nächsten. 
Bei niedriger Drehzahl ist das halt ein Geruckel. Wenn es 
glleichmässiger werden soll, kann man Mikroschrittbetrieb einstellen, 
das ergibt entsprechend kleinere Schrittte, dafür mehr pro Umdrehung. 
Eventuell kommt auch noch ein Untersetzunsgetriebe in Frage, dann wird 
es noch gleichmässiger.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Werner M. schrieb:
> Der Maximalstrom wird vom A3967 bestimmt. Da hat der Motor überhaupt
> nichts mitzureden. Guck mal ins Datenblatt.

 So überzeugt wie du klingst, fange ich an zu glauben, das der A3967
 kurzschlußfest ist...
 Temperaturschutz und Stromüberlastungschutz sind 2 paar schuhe.

: Bearbeitet durch User
von n.b. (Gast)


Lesenswert?

ernst oellers schrieb:
> Wenn es
> glleichmässiger werden soll, kann man Mikroschrittbetrieb einstellen,

Xenotime schrieb:
> Momentan ist der easydriver im microstepping modemit 8 Mikorschritten.

von Carsten R. (kaffeetante)


Lesenswert?

Ich weiß, darum heißen die auch Schrittmotor, aber er schrieb:

Xenotime schrieb:
> Wenn ich den Aufbau in Betrieb nehme vibriert mein Motor nur,

Er läuft also nicht, springt nicht in die nächste Position. Er setzt nur 
zum Sprung an und dann ist der Strom auch schon wieder abgeschaltet, 
bevor er in die nächste Position hüpfen kann. Das liegt daran, daß der 
Motor mehr Strom aufnehmen will als der Treiber erlaubt.

von Und noch ein Tipp (Gast)


Lesenswert?

> das Ruckeln ist am geringsten wenn ich ihn nur mit 150mA betreibe

Solange du einen Schrittmotor nicht belastest, ist das normal. Sei froh, 
dass du Mikroschritt hast. Mit den alten Halbschrittsteuerungen war das 
noch schlimmer. (Hat schon seine Gründe, warum wir Kupplungen für 20 
Euro benutzen.)

von Werner M. (Gast)


Lesenswert?

Marc Vesely schrieb:
> So überzeugt wie du klingst, fange ich an zu glauben, das der A3967
>  kurzschlußfest ist...
>  Temperaturschutz und Stromüberlastungschutz sind 2 paar schuhe.

Der A3967 enthält für jede Motorwicklung eine Schaltwandler 
Konstantstromquelle, bei der der Sollstrom durch Referenzspannung, Größe 
der Sense-Widerstände und Step-Translator festgelegt wird. Die 
Motorspule ist dabei die Speicherspule.

Zitat: "The A3967 includes a fixed off-time current regulator ..."

von Carsten R. (kaffeetante)


Lesenswert?

Ah ok den Post das er ihn nun ans Laufen bekommen hat habe ich 
übersehen.

von Werner M. (Gast)


Lesenswert?

Carsten R. schrieb:
> Das liegt daran, daß der
> Motor mehr Strom aufnehmen will als der Treiber erlaubt.

Schrittmotoren werden mit modernen Treibern eigentlich immer so 
betrieben, dass der Treiber abschaltet, bevor der Strom den auf Grund 
des ohmschen Widerstandes möglichen Wert erreicht. IMHO nennt sich das 
Chopperbetrieb.

Marc Vesely schrieb:
> So überzeugt wie du klingst, fange ich an zu glauben, das der A3967
>  kurzschlußfest ist...

p.s. Kurzschlussfest ist er nicht. Wenn die Motorspule überbrückt wird, 
hat er gut Chancen, ins Jenseits zu entschwinden.

von Carsten R. (kaffeetante)


Lesenswert?

Hier liegt die Grenze des Treibers aber unter der der Motors. Der 
Treiber schaltet also ab, bevor die "ohmsche Grenze" erreicht wird. 
Offenbar reicht hier dieser Strom aber doch aus um Bewegung in die Sache 
zu bringen.

Ist es nicht eher so daß im Chopperbetrieb der Treiber einen 
vorgegebenen Stromwert anstrebt, und nicht notwendig speziell den 
ohmschen Motorstrom?

von Xenotime (Gast)


Lesenswert?

Wie gesagt, mittlerweile funktioniert das Programm. Es wirkt aber so als 
würde er einige Schritte überspringen und so das Rucklen entstehen.

von Werner M. (Gast)


Lesenswert?

Carsten R. schrieb:
> Der Treiber schaltet also ab, bevor die "ohmsche Grenze" erreicht wird.

Das tut ein richtig dimensionierter Chopper-Treiber immer, sofern die 
Betriebsspannung ausreichend hoch ist. Hier ist der Treiber allerdings 
zu schwach, um den Motor mit seinem vollen Strom zu betreiben.

> Ist es nicht eher so daß im Chopperbetrieb der Treiber einen
> vorgegebenen Stromwert anstrebt, und nicht notwendig speziell den
> ohmschen Motorstrom?
Genau. Der "ohmsche Motorstrom" soll auch gar nicht erreicht werden.
Damit bei hohen Schrittfrequenzen, trotz des durch die 
Wicklungsinduktivität gebremsten Stromanstiegs noch ein vernünftiges 
Drehmoment (i.e. Strom) erreicht wird, muss der Motor mit einer 
erheblich höheren Spannung als der angegebenen Nennspannung betrieben 
werden. Ohne Stromregelung würde er bei niedriger Schrittfrequenz dann 
durchbrennen oder zumindest gefährlich heiß werden.

von Carsten R. (kaffeetante)


Lesenswert?

@ Werner

Dann meinen das Gleiche, haben nur aneinander vorbei geredet. Der 
Treiber begrenzt weit bevor der Motornennstrom erreicht werden kann.

Xenotime schrieb:
> Wie gesagt, mittlerweile funktioniert das Programm. Es wirkt aber so als
> würde er einige Schritte überspringen und so das Rucklen entstehen.

Das nennt sich "Schrittverlust". Das ist das, was ich in meinem ersten 
Post meinte, nur daß es hier wohl nicht immer, sondern nur ab und an 
dazu kommt. Ursache ist der zu geringe Strom und damit das zu geringe 
Drehmoment. Beides hängt miteinander zusammen.

Xenotime schrieb:
> Ich überlege mir auch einen andern Motor zu holen der an 4-7 V ca 0.3
> bis 0.6 A pro Spule zieht. Könnte mir das einen ruhigeren Lauf bringen
> wenn ich als Versorgung 12V und mindestens 2A einetze? Kann mir da
> jemand einen Motor empfehlen?

Das könnte gehen. Ein solcher Motor könnte sein volles Drehmoment 
entfalten. Das ist aber relativ zu sehen, also anteilig vom 
Nenndrehmoment des jeweiligen Motors zu rechnen. Datenblatt 
konsultieren.

Ein anderer Motor mit ansonsten gleichen Daten wie der Aktuelle, aber 
mit nur 600 mA Nennstrom, könnte zwar auch sein volles Drehmoment 
entfalten, er wäre dadurch aber nicht stärker, weil er insgesamt 
schwächer ist. Ich hoffe das war jetzt nicht zu verwinkelt erklärt.

Dank der höheren Nennspanung ist aber die Leistung bei gleichem 
Nennstrom und auch sonst vergleichbaren Daten höher. Wenn beide auf die 
gleiche Geschwindigkeit ausgelegt sind wird der Motor mit der höheren 
Spannung bei gleichem Strom wahrscheinlich mehr Drehmoment haben.

So gesehen sehe ich gute Chancen für deine Wahl mit 4-7 Volt bei 600 mA, 
da Dir ja niht viel fehlt. Es läuft ja, er überspringt nur einige 
Schritte. Letztlich entscheidet aber Das Datenblatt über das Drehmoment. 
Aktuell hast Du von den 4000g/cm torque durch den anteiligen Strom auch 
nur eien anteil der 4000g/cm torque. Wenn Du einen Motor findest mit 
3000g/cm torque bei 600 mA Nennstrom, dann sollte es gehen.

Als Alternative bliebe noch ein stärkerer Treiber.

: Bearbeitet durch User
von Und noch ein Tipp (Gast)


Lesenswert?

> Es wirkt aber so als würde er einige Schritte überspringen
>> Ursache ist der zu geringe Strom und damit das zu geringe Drehmoment.

Leider nicht so einfach. Kann auch an zu hohem Drehmoment liegen.

Am besten erst mal dem Schrittmotor im Schraubstock einspannen und mit 
den Fingern die Welle abbremsen. Da solltest du einen Punkt finden, an 
dem der Motor sauber lauft.

Wenn nicht - Elektrik überprüfen. Wenn es mit der Reibung der Finger 
klappt: Mit  Drehmoment, Schwungmasse, elastischer Kupplung und 
Beschleunigungsrampe so lange experimentieren, bis alles sauber läuft.

von Xenotime (Gast)


Lesenswert?

Dank der vielen Hilfestellungen und einem Schaltnetzteil mit 2.5A konnte 
ich jetzt den Motor ans laufen bringen.
Nun gibt es noch folgende Probleme, der Motor läuft sehr unruhig trotz 
8fachen Mikorschritten, also 1600 Schritte für eine volle Umdrehung.
Je höher die Spannung des Netzteils ist desto mehr Schritte verliert der 
Motor. Je näher ich mit der Spannung an der Spnnung des Motors bin desto 
ruhiger läuft er und verliert weniger Schitte. Der optimale Strom 
scheint bei 200-300 mA zu liegen was mich sehr verwundert bei einer 
Angabe von 1.6A pro Spule.
Kann es also sein, dass ich ein Timing bzw. Beschleuningungsproblem 
habe?

Ich habe mir jetzt einen neuen Motor kommen lassen, der für 4.5V und 
600mA ausgelgegt ist und bei 300mA noch ruhig laufen soll.

von Carsten R. (kaffeetante)


Lesenswert?

Da er für 0,6 A bei einer höheren Spannung ausgelegt ist, gehe ich davon 
aus, daß er bei bei diesem Strom ein höheres Drehmoment als der aktuelle 
Motor hat. Das müßte sich mit dem Datenblatt feststellen lassen. Damit 
sollte es gehen.

Xenotime schrieb:
> Je höher die Spannung des Netzteils ist desto mehr Schritte verliert der
> Motor. Je näher ich mit der Spannung an der Spnnung des Motors bin desto
> ruhiger läuft er und verliert weniger Schitte.

Das ist völig normal bei diesem Treiber in dieser Konstellation. Werner 
hat den Grund dafür auch schon genannt.

Werner M. schrieb:
> Zitat: "The A3967 includes a fixed off-time current regulator ..."

Weiter steht im Datenblatt
"Output current rating may be limited by duty cycle, ambient
temperature, and heat sinking."

Das bedeutet:

Der Strom wird eingeschaltet und steigt an bis zum Erreichen des Limits. 
Dann wird er für eine feste Zeit abgestellt. Danach beginnt das Spiel 
von vorn.

Die Konsequenz:

Man hat eine on-Zeit und eine Off-Zeit. Die off-Zeit ist fix. Die 
on-Zeit wird mit zunehmender Spannung kürzer, da der Strom das Limit 
schneller erreicht. Das verkürzt den Dutycycle. Das führt in dieser 
Konstellation zu dem scheinbar paradoxen Phänomen, daß die Leistung, 
bzw. das Drehmoent sinkt wenn man mehr Spannung gibt. Zudem ist der 
Strom in diesem Betriebsmodus dreieckig, was den effektiven Strom 
reduziert.

Damit liegt der Strom weit unterhalb der 1,6 A des Motors. Er liegt auch 
weit unterhalb der 750 mA des Treibers. Im Mittel liegt er bei 
Dreieckigem Strom bei der Hälfte, und bei hoher Spannung kann es durch 
den jkeinen dutycycle sogar zum lückenden Betrieb kommen, wo der Strom 
in der Off-Zeit auf Null fällt. Dann liegt der Strom im Mittel noch 
niedriger.

Das extreme Gegenbeispiel wäre:

Wenn die Spannung gerade so niedrig ist, daß der Maximalstrom gerade 
nicht überschritten wird, so kommt es nicht zur "Überstromabschaltung" 
und du hast, abgesehen von der Einschaltphase, einen nahezu konstant 
hohen Strom im gesammten Puls. Damit hättest du Das maximale Drehmoment 
das mit dieser Hardware möglich wäre.

Für den neuen Motor bedeutet dies:

Da der neue Motor für eine höhere Spannung ausgelegt ist, wird der Strom 
nicht so schnell steigen und dadurch der Dutycycle bei gleicher Spannung 
größer sein. Dadurch steigt der effektive Strom und er kommt näher an 
sein Nenndrehmoment heran.

Kurzzeitig wird dieser Treiber den Motor zwar mit 750 mA etwas 
übelasten. Das wird allerdings durch die off-Zeiten kompensiert. Ob es 
über- oder unterkompensiert wird, hängt von der festen 
off-Zeit-Einstellung und der Versorgungsspannug, bzw. aus dem daraus 
resultierenden Dutycycle ab.

Aus deiner Aufgabenbeschreibung schließe ich aber, daß der Motor nie 
lange am Stück laufen wird sondern immer nur kurz nachpositionieren 
wird. Da wird eine solch geringfügige Überlastung bei so kurzen 
Betriebszeiten ohnehin kaum ein Problem sein.

: Bearbeitet durch User
von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Xenotime,

> Nun gibt es noch folgende Probleme, der Motor läuft sehr unruhig trotz
> 8fachen Mikorschritten, also 1600 Schritte für eine volle Umdrehung.
> Je höher die Spannung des Netzteils ist desto mehr Schritte verliert der
> Motor.

Das ist ungewöhnlich.

> Je näher ich mit der Spannung an der Spnnung des Motors bin desto
> ruhiger läuft er und verliert weniger Schitte. Der optimale Strom
> scheint bei 200-300 mA zu liegen was mich sehr verwundert bei einer
> Angabe von 1.6A pro Spule.

Wie misst du die 200-300mA? Ist das der Strom vom Netzteil zum Treiber, 
oder der Motorstrom der sich aus der eingestellten Referenzspannung 
ergibt? Hast du die richtig berechnet und eingestellt?

> Kann es also sein, dass ich ein Timing bzw. Beschleuningungsproblem
> habe?

Das kann schon sein. Hast du die Möglichkeit, zum Test einen konstanten 
Takt vorzugeben, z.B. mit einem Funktionsgenerator?

Mit freundlichen Grüßen
Thorsten Ostermann

von Carsten R. (kaffeetante)


Lesenswert?

Thorsten Ostermann schrieb:
> Das ist ungewöhnlich.

Nein, völlig logisch, wenn man das Datenlatt des Controllerchips genau 
liest. Den Mechnismus habe ich oben unter

Konsequenz:

beschrieben

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Deine Beschreibung ist so allgemein aber nicht richtig. Sonst wäre es 
völlig unsinnig, Schrittmotoren mit deutlich höheren Spannungen als 
ihren Nennspannungen zu betreiben. Über Mixed-decay sorgt der Treiber 
dafür, dass der Strom eben nicht schnell wieder auf Null fällt.

Einen dreieckigen Stromverlauf erhält man normalerweise nur, wenn der 
Motor so schnell dreht, dass der Nennstrom nicht mehr erreicht wird und 
der Stromregler nicht mehr aktiv werden kann, bevor die Wicklung schon 
wieder umgeschaltet wird. Davon ist der OP aber offensichtlich noch weit 
entfernt.

Mit freundlichen Grüßen
Thorsten Ostermann

von Carsten R. (kaffeetante)


Lesenswert?

Das hängt davon ab ob die Frequenz hoch genug ist, genauer gesagt, ob 
sie zum Motor passt. Hier paßt der Motor nicht zum Treiber. Das hat auch 
Einfluß auf das Timing.

Ich stimme Dir zu, normalerweise sollte es ein fast konstanter Strom 
sein, der mit einem feinen Dreickstrom/Sägezahn überlagert ist. Meine 
Erklärung/Hypothese ist nicht verallgemeinerbar. Aber hier funktioniert 
ja was nicht. Das hier sieht mir zu sehr danach aus, daß die Off-zeit 
für diese Motor/Spannungskonstellation zu groß ist und damit der 
Ripple/Sägezahnanteil relativ groß ist. Der Extremfall wäre ein 
lückender Sägezahn. Ganz so schlimm wird so wohl nicht sein.

Mein erster Ansatz wäre die Off-Zeit in Erfahrung zu bringen und den 
Strom mit dem Oszi zu betrachten. Im Datenblatt steht zwar etwas zur 
Off-Zeit, leider ist mir die Bestückung der Easydrivers 4.4 nicht 
bekannt. Ich kenne nur die Bestücken der 4.3 Version. Außerdem würde ich 
im Zweifelsfall immer nachmessen wenn etwas nicht stimmt. Man kann es ja 
überprüfen.

Für alternative Erklärungen bin ich natürlich offen. Dies ist nur mein 
vorrangiger Verdacht.

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