PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : A4988 trotz Strombegrenzung Motor heiss



steckplatte
10.12.2012, 17:49
Hey liebes Forum,

Ich hab das Pololu A4988 und einen Schrittmotor 7,4V / 280mA, mein Netzteil gibt bei 9V 1A raus. Mein Motor wird nach einer Zeit heiss..sehr heiss.. Ich konnte den A4988 so einstellen, dass der Motor schon nicht mehr so heiss wird..jedoch wird er noch heiss.. Ich weiss dass ein Lösungsanschlag wäre, den Strom im Motor im Ruhezustand auszuschalten, jedoch muss er die Position exakt behalten. Also fàllt dies aus.
Ist es richtig, dass insgesamt der Motor 2x280mA saugt? Da ja 2Spullen.

Eine andere Frage, die geht eigendlich ums Programmieren: Also ich programmiere mein Motor so:
Ich benutze eine Forschleife, in der ich das Signal des Driver auf high lege, dann ein paar milisekunden warte, und dann das Signal auf low gebe. Meiner Meinung nach ist das PWM, oder leg ich da jetzt falsch? Gibt es eine "elegantere" Programmierung?

Vielen dank,
schönen abend

zschunky
10.12.2012, 22:59
Hallo,

Schrittmotoren können schon etwas wärmer werden. Ich gehe davon aus dass Du den Strombegrenzer auch richtig mit dem Potentiemeter eingestellt hast?

Eine for-Schleife ist eine einfache Art den Schrittmotor zu bewegen. Die Frage ist natürlich von wo aus Dein A4988 gesteuert wird. Falls er an einen Microcontroller hängt und will man noch ein paar andere Sachen gleichzeitig rechnen/laufen lassen ist so eine for Schleife nicht gerade gut geeignet. Besser geeignet wäre dann den Timer in Kombination mit Output-Compare Setups (hier stellt man den Timer einmal ein und lässt den Output-Pin automatisch von low zu high bzw high zu low wechseln ohne eine Schleife). Entscheidend bei dem A4988 ist immer die Flanke von Low auf High am Step Signal.

Dein Signal ist nicht wirklich ein PWM Signal da es wahrscheinlich immer die gleiche Zeit high und low sein wird. Bei einem PWM variert die Zeit von low und high. PWM wird bei DC-Motoren verwendet, aber nicht bei Schrittmotoren. Man kann zwar auch PWM Signale hernehmen um den Schrittmotor zu steuer, aber es wird den A4988 nicht wirklich interessieren wie lange der LOW und HIGH Anteil ist.

-zschunky

steckplatte
11.12.2012, 17:52
Hey


Schrittmotoren können schon etwas wärmer werden. Ich gehe davon aus dass Du den Strombegrenzer auch richtig mit dem Potentiemeter eingestellt hast?
Der wird sauwarm nach einer Zeit. Ja, ich hab den so eingestellt dass der Motor noch genug Strom bekommt um zu drehen.



Eine for-Schleife ist eine einfache Art den Schrittmotor zu bewegen...
Das hab ich gemerkt als ich noch einen Counter in der Schleife programmiert habe, dass der viel Langsamer wurde. Aber gut, eigendlich brauch ich für mein Vorhaben in der for schleife keine andere Verarbeitung als nur das HighLow Signal zu togglen.
Des mit dem TImer, kann man das so verstehen dass er zbsp Jede Xte Sekunde / frequenz einen Toggle macht?
Ist die programmierung mit dem Timer denn eleganter als mit einer Schleife?[/QUOTE]

Danke,
Lg

zschunky
11.12.2012, 18:26
Der Strombegrenzer ist dafür da dass er nicht zu viel Strom bekommt (und nicht noch genug). Auf der Unterseite des Polulu ist ein Pad an dem man VREF messen kann. Dieser sollte für Deinen Motor auf 0.112V (0.28/2.5) bzw. falls Du nur den Vollschritt-Modus verwendest 0.16V ((0.28/0.7)/2.5) eingestellt sein. Falls hier zuviel eingestellt ist kann dies die Lebensdauer Deines Motors beeinflussen und es könnte auch daran liegen dass der Motor zu warm wird. Den Strombegrenzer einstellen sollte man ohne angeschlossenen Motor machen (Spannung sollte jedoch angeschlossen sein und reset+sleep auf High und Enable auf Low). Also Multimeter an das Pad halten und den Poti drehen bis man die gewünschte Spannung am PAD sieht.

Den Timer kann man so programmieren dass er mit einer festen Frequenz immer ein Signal togglen lässt (das sind aber spezielle Pins und keine beliebigen). Wenn gewünscht kann man auch nach jeden Takt per Interrupt die nächste Flanke anpassen (zum Beispiel zum beschleunigen). Der Timer ist dann unabhängig von dem was gerade der Microcontroller noch so macht (zb irgendwelche Sensoren auslesen).

-zschunky

Besserwessi
11.12.2012, 20:11
Der Nennstrom der Schrittmotoren ist durchaus so bemessen, das die Motoren wirklich heiß werden, ggf. schon mal so viel, das man sie nicht mehr Anfassen kann. Ein heißer Motor ist also schon normal. Etwas weniger Strom geht aber in den meisten Fällen auch.

Für den Ruhezustand kann man den Strom wenigstens reduzieren, auf z.B. 1/3 des Stromes - das reduziert die Verluste um den Faktor 9, und das Rastmoment reicht in der Regel noch aus, dass man keine Schritte verliert.

steckplatte
12.12.2012, 14:23
Der Strombegrenzer ist dafür da dass er nicht zu viel Strom bekommt (und nicht noch genug). Auf der Unterseite des Polulu ist ein Pad an dem man VREF messen kann. Dieser sollte für Deinen Motor auf 0.112V (0.28/2.5) bzw. falls Du nur den Vollschritt-Modus verwendest 0.16V ((0.28/0.7)/2.5) rehen bis man die gewünschte Spannung am PAD sieht.

Das Poti ist auf 0,16 V eingestellt. Wenn ich den Poti jedoch minimal runterdreh(so dass der Motor sich nicht mehr drehen kann da nicht genug Strom), kann man ein FIEPEN des Motor's hören. Woran liegt das ?
Nach ner Zeit wird der trotzdem brennend.

Eine andere Frage mal: heisst das jetzt dass der Motor immer 280mA zieht? Oder wie funktioniert das? Ich seh da gerade nicht viel Licht im dunkeln.. Was wenn ich jetzt ein anderes Netzteil mit einem höheren Ausgangsstrom an den Treiber anschliessen würde? Dann müsste ich ja logischerweise das Poti wieder auf 0.16V einstellen. Der Driver kann maximal 2A pro SPule ausgeben, also bin ich mit dem 280mA pro Spule mal auf der Sicheren Seite. Wie ist es jedoch mit dem EingangsSTROM? Darüber konnte ich jetzt nichts finden auf der Hersteller Seite.

Okay, für die Programmierung müsste ich mich dann mal ein bisschen einlesen.

Der Timer ist dann unabhängig von dem was gerade der Microcontroller noch so macht (zb irgendwelche Sensoren auslesen).
Ja aber dann werden doch die anderen "Verarbeitungen" des uC ja gestoppt.

Vielen dank euch beiden :)

zschunky
12.12.2012, 16:02
Ich vermute mal dass Du das Fiepen hörst wenn der Motor sich drehen soll, er es aber nicht mehr aufgrund der niedrigen Stromes schafft.

Jede Spule zieht bis zu 280mA (also 2x280mA). Wenn man an einer Spule eine Spannung anlegt dauert es eine gewisse Zeit bis die Maximal-Stromstärke erreicht wird. Solange die Stromstärke nicht erreicht wird ist jedoch auch kein hohes Drehmoment vorhanden. Also wenn der Motor steht fliessen die 2x280mA. Bewegt er sich wären es normalerweise viel weniger Strom, wobei dies nun von Schrittmotortreiber so ausgeglichen wird, dass er hier eine wesentlich höher Spannung anlegt um nun wieder ein hohes Drehmoment zu erreichen (so können zB. 3V Schrittmotoren mit 30V oder mehr betrieben werden). Und hier kommt dann die Spannungsversorgung ins Spiel, je mehr Spannung und Strom sie liefert, um so mehr kann an den Schrittmotor weiter gegeben werden. Das Ganze ist aber nur relevant wenn man hohe Drehzahlen erreichen will. Und eine größere Spannungsversorgung wird nicht an der Wärme Deiner Motoren ändern.

Zwecks Microcontroller: Es werden eben nicht andere Verarbeitungen gestoppt, denn der Timer ist ein unabhängiger Hardwareblock im Microcontroller. Einmal richtig programmiert muss man sich nicht mehr darum kümmern.

-zschunky

steckplatte
12.12.2012, 16:59
Ich vermute mal dass Du das Fiepen hörst wenn der Motor sich drehen soll, er es aber nicht mehr aufgrund der niedrigen Stromes schafft.
Nein auch im ruhestand. Ich brauch nur kurz, mit egal was, op Finger, MessSpitze vom Multimeter gegen das Potti zu kommen, und hopp feipt es. So, hab eben das Poti bisschen verstellt und wieder gemessen, jetzt ist es nicht mehr so schlimm mit dem Feipen!


Und eine größere Spannungsversorgung wird nicht an der Wärme Deiner Motoren ändern.
Ja korrekt, jedoch einen höheren Strom. Und das war halt meine Frage, wieviel Strom ich überhaupt auf den Treiber geben kann, sodass er es noch geregelt bekommt?


Zwecks Microcontroller: Es werden eben nicht andere Verarbeitungen gestoppt, denn der Timer ist ein unabhängiger Hardwareblock im Microcontroller. Einmal richtig programmiert muss man sich nicht mehr darum kümmern.
Oh das hört sich ja wunderbar an! Muss ich mir wiklich am wochenende einen schönen Artikel suchen und den auseinandersetzen!

Klebwax
12.12.2012, 17:11
Ja korrekt, jedoch einen höheren Strom. Und das war halt meine Frage, wieviel Strom ich überhaupt auf den Treiber geben kann, sodass er es noch geregelt bekommt?

Wie willst du "Strom" draufgeben?


Muss ich mir wiklich am wochenende einen schönen Artikel suchen und den auseinandersetzen!

Vergiß dabei nicht, über das Ohmsche Gesetz und die Kirchhoffschen Regeln nachzudenken. Sind zwar schon alt, gelten aber immer noch.

MfG Klebwax

steckplatte
12.12.2012, 17:15
Wie willst du "Strom" draufgeben?
Vergiß dabei nicht, über das Ohmsche Gesetz und die Kirchhoffschen Regeln nachzudenken. Sind zwar schon alt, gelten aber immer noch.

Ja ein Netzteil gibt zbsp 4A raus -und wie du sagtest, nach dem Ohmschen Prinzip wird dieser Strom auch "verbraucht" Oder ? zbsp I=U/R, U=12V, R=10Ohm, 0,12A - was jetzt wenn ich auf diesen Verbraucher(in diesem Fall 100Ohm) ein NT mit 4A Ausgangsstrom anschliesse?

Klebwax
12.12.2012, 17:43
... was jetzt wenn ich auf diesen Verbraucher(in diesem Fall 100 Ohm) ein NT mit 4A Ausgangsstrom anschliesse?

Richtig, das ist die Frage. Und was, wenn du ein PC-Netzteil nimst, mit 25A auf der 12V Schiene? Und was bei einem Autoakku, der leicht für 250A gut ist?

MfG Klebwax

steckplatte
12.12.2012, 18:26
Am liebsten würde ich sagen dass das schnuppe ist aber ich tendiere halt eher dazu, weil ich es logisch finde, dass dieser dicke Strom dann auf den kleinen Widerstand geht -und falls der Strom sehr hoch ist, der widerstand mal schön anfängt zu kochen.
Jedoch hab ich noch den Gedanken dass ein Verbraucher nur soviel Strom nimmt wie er benötigt.. Hmm

Klebwax
12.12.2012, 18:38
... zbsp I = U/R, U = 12 V, R = 100 Ohm, 0,12 A

Das Netzteil kommt da nur mit 12V vor.

MfG Klebwax

steckplatte
12.12.2012, 18:49
Also zieht der Verbraucher nur soviel wie er braucht ?
Wenn das der Fall wàre dann bräuchten wir doch gar keine Strombegrenzer, nur Spannungsregler..:rolleyes:

Klebwax
12.12.2012, 19:31
... Schrittmotor 7,4V / 280mA, mein Netzteil gibt bei 9V .....

Du hast es selbst geschrieben. Und wenn du dich jetzt noch über Schrittmtoren schlau machst, könntest du rausfinden, daß die 9V eigentlich zu wenig sind. Da bleiben für den Regler nur 1,6V übrig, ich vermute, er kommt damit nicht klar.

MfG Klebwax

steckplatte
12.12.2012, 20:08
Da bleiben für den Regler nur 1,6V übrig, ich vermute, er kommt damit nicht klar.


Beziehst du dich jetzt auf s Fiepen? Also hab jetzt 12V eingestellt und den Regler dementsprechend so dass der Motor dreht! Da Fiebt er mir ja die Ohren voll. Also hab ich minimal höher gedreht bis das Fiepen weg war, jedoch wird der Motor schon wärmer als vorher.

steckplatte
23.12.2012, 15:00
Also zieht der Verbraucher nur soviel wie er braucht ?
Wenn das der Fall wàre dann bräuchten wir doch gar keine Strombegrenzer, nur Spannungsregler (http://www.rn-wissen.de/index.php/Spannungsregler)..:rolleyes: