12V Schrittmotor an 12V Netzteil dreht nicht

Gast #5412545
Lesenswert?

Hallo,

erstmal zu meinem Aufbau:

Arduino Nano
A4988 Treiber
Nema 17 12V 0.4A 30Ohm
12V 2A Netzteil

Eingestellt ist nach:

V = A*0.7*8*Rs ohm

(0.4*0.7)*8*0.1 = 0,224 V

Mein Test-Sketch:

int ste = 5;
int dir = 6;

void setup()
{
  pinMode(ste, OUTPUT);
  pinMode(dir, OUTPUT);
}

void loop()
{

  for(int i = 0; i < 400; i++ )
  {

  digitalWrite(dir, HIGH);
  digitalWrite(ste, HIGH);
  delay(250);
  digitalWrite(ste, LOW);
  delay(250);
 }

  for(int i = 0; i < 400; i++ )
  {
  digitalWrite(dir, LOW);
  digitalWrite(ste, HIGH);
  delay(250);
  digitalWrite(ste, LOW);
  delay(250);
 }


}

Jedoch bewegt sich der Motor nicht so wie er sollte, manchmal macht er 
einen kleinen Satz nach vorne und dann direkt wieder zurück und manchmal 
passiert auch einfach garnichts.

Kann es an dem Netzteil liegen oder doch eher am Treiber?

Beste Grüße
Gast #5412570
Lesenswert?

Dir schaltet die Richtung des Motors.
Verkabelt ist es wie es viele andere auch gemacht haben, also sollte das 
stimmen.

Jedoch gibt der Treiber keine Spannung an den Motor aus also doch 
Treiber defekt?
Gast #5412599
Lesenswert?

Wie hast Du die Mikrosteps Auflösung eingestellt?
Den Decay-Mode?
i ist aber nicht etwa 8Bit?

Vielleicht macht er nur 144 Schritte und Decay macht den Rest!?

Wie lange wartet diese blöde delay-Funktion? ms? us?

Gruss Chregu
Gast #5412605
Lesenswert?

slider101 schrieb:
> Verkabelt ist es wie es viele andere auch gemacht haben, also sollte das
> stimmen.

Dann wird es auch so funktionieren, wie bei den anderen.
Nochmal, was soll die dauernde Fummelei an der Dir-Leitung. Einmal High 
und einmal Low setzen sollte doch reichen. Bei jedem Schritt den Wert 
noch einmal zu setzen, bringt die Welt nicht weiter.
Was macht der Treiber, wenn du ihn von Hand ansteuerst, also einfach 
direkt an den Step-Eingang Pulse von einem einfachen Rechteckgenerator 
oder einem Taster, der über ein RS-FF sauber entprellt ist?
Gast #5412960
Lesenswert?

slider101 schrieb:
> Aus dem Netzteil kommen 12V. Die 6V liegen maximal an den Leitungen zum
> Motor an

slider101 schrieb:
> Eingestellt sind 0,2

Wohl Ampere ...
0,2A bei 30Ω wären 6V. Könnte passen.

Vielleicht reicht der Strom nicht, um das Rastmoment des Motors zu 
überwinden, obwohl das so hoch schon ungewöhnlich wäre. Was spricht 
dagegen, den Strom mal auf den Nennstrom des Motors hochzudrehen?

slider101 schrieb:
> Über einen Taster passiert ebenfalls nichts

Du könntest den Motor auch mal direkt mit 2 Kippschaltern an den 12V 
betreiben und gucken, ob er dann vernünftig weiter steppt.
Gast #5413030
Lesenswert?

slider101 schrieb:
> Werde jetzt mein Setup verändern in
>
> NEMA 17 2,2V 2A
> DRV8825
> 12V 2A Netzteil
>
> Ist das Netzteil noch stark genug wenn ich die Vref auf 1 Stelle für die
> maximalen 2A?

Oh Mann, versuche doch mal zu verstehen, was da abgeht.

Also, der Motor-IC treibt einen Strom durch den Motor. Das macht er - 
mal ganz grob gesagt - ähnlich wie ein normaler Schaltregler.

Also lerne daraus, daß die Spannungen relativ EGAL sind - sowohl die am 
Motot zu messende als auch die Versorgung des Ganzen.

Damit so ein Motor überhaupt sinnvoll drehen kann, muß also in seinen 
diversen Erregerspulen der Strom an- und abschwellen, umgepolt werden 
und so. Je schneller das geht, desto schneller kann der Motor drehen. 
Aber so ne Spule hat ja eine Induktivität und da du hoffentlich in 
Physik aufgepaßt hast, weißt du daß das Ändern des Stromes in ner 
Induktivität nicht schlagartig möglich ist.

Beim Kondensator gilt dU/dt = I/C und bei der Spule dI/dt = U/L - 
folglich solltest du dem Motor-IC so viel Versorgungsspannung geben, wie 
er mit Anstand vertragen kann. Je höher desto besser. Den Strom regelt 
der IC - und der tut das unabhängig vom Motor. Merke dir das.

So, jetzt kennst du vom Datenblatt deines Motors die Induktivität, die 
da umgeladen werden soll, du kannst am Motor-IC den Sollstrom einstellen 
und du kennst die Anzahl der Vollschritte, die dein Motor für 1 volle 
Umdrehung hat. Also kannst du dir aus derner Versorgungsspannung 
ausrechnen, wie schnell du damit den Motor drehen lassen kannst, also in 
welchen zeitlichen Abständen du einen Schrittimpuls geben kannst, ohne 
daß der Motor sich verschluckt und bloß auf der Stelle tritt.

W.S.
Gast #5413037
Lesenswert?

slider101 schrieb:
> Der A4988 wird nicht warm. Die Kabel sollten stimmen

Ein hinreichend belasteter A4988 wird deutlich warm.
Das hat übrigens nichts mit einem belastetem Motor zu tun. Der nimmt den 
gleichen Strom, ob mechanisch belastet, oder auch nicht.


Welchen Motor verwendest du jetzt?
Schaltplan?
Stützkondensator verbaut?


Einstellung des Treibers?
(und bitte nicht so zusammenhanglose, dimensionsfreie, 0,2 oder so)
Welchen Shunt hat der Treiber drauf?
Welche Formel nutzt du?
Gast #5413042
Lesenswert?

W.S. schrieb:
> Beim Kondensator gilt dU/dt = I/C und bei der Spule dI/dt = U/L -
> folglich solltest du dem Motor-IC so viel Versorgungsspannung geben, wie
> er mit Anstand vertragen kann. Je höher desto besser. Den Strom regelt
> der IC - und der tut das unabhängig vom Motor. Merke dir das.

An die Aussage mach mal ein paar dicke Fragezeichen dran!

Bei 250ms Schritttakt ist das erstmal völlig egal. Die Induktivitäten 
der Motorwicklungen sind nicht so hoch, dass sich der Strom nicht 
aufbauen kann, bevor der Sequencer weiter schaltet. Das wird erst 
relevant, wenn die Zeitkonstante auf Grund der Induktivität in die 
Größenordnung der Taktzeit kommt und Drehmoment ein Kriterium ist.

Für sinnvolle Anwendung, bei denen mehr Drehzahl gefordert wird, ist die 
Spannungsreserve natürlich wichtig, aber hier geht es erstmal einzig um 
die Grundfunktion und die muss auch bei Nennspannung des Motors 
funktionieren.

Du tust so, als ob es vor Einführung der Stromregelung in den Treibern 
keine drehenden Schrittmotoren gegeben hätte.

Beispiele mit ULN2003 und einfachen unipolaren Schrittmotoren, die für 
Kleinkram durchaus ihren Zweck erfüllen können, gibt es genug.
Gast #5413054
Lesenswert?

Arduino F. schrieb:
> slider101 schrieb:
>> Der A4988 wird nicht warm. Die Kabel sollten stimmen
>
> Ein hinreichend belasteter A4988 wird deutlich warm.
> Das hat übrigens nichts mit einem belastetem Motor zu tun. Der nimmt den
> gleichen Strom, ob mechanisch belastet, oder auch nicht.
>
> Welchen Motor verwendest du jetzt?
> Schaltplan?
> Stützkondensator verbaut?
>
> Einstellung des Treibers?
> (und bitte nicht so zusammenhanglose, dimensionsfreie, 0,2 oder so)
> Welchen Shunt hat der Treiber drauf?
> Welche Formel nutzt du?

Ich benutze noch den 12V 0.4A Nema 17

Step --> Arduino D5
Dir --> Arduino D6

Motorspannung über 12V 2A

Motor:
Rot-Blau --> 1A-1B
Schwarz-Grün --> 2A-2B

Kein Schutzkondensator

Der Treiber hat 0,1Ohm

und ich habe vref = 0,32V (Zwischen dem Poti und Logik GND)

nach

vref= A*(8*0,1)
Gast #5413080
Lesenswert?

slider101 schrieb:
>> Hast du das nachgemessen?
>
> Ich habe dies aus dem Datenblatt übernommen dort ist

Also nein

Dann nimm ein Ohmmeter und miss jetzt nach.

Wenn du kein Oszi hast, änderst du im Programm die Verzögerungszeit 
zwischen den Schritten auf einige Sekunden, hängst parallel zu den 
Wicklungsausgängen jeweils ein antiparallelgeschaltetes LED-Pärchen 
(rot/grün) nebst Vorwiderstand und vergleichst den Zeitverlauf der 
Spannung z.B. mit der Simulation bei Nanotec.
Gast #5413087
Lesenswert?

slider101 schrieb:
> Kein Schutzkondensator
Ein solcher ist zwingend erforderlich.


Auch ist bei manchen Treiberplatinen eine Verbindung der beiden GND 
nötig.


slider101 schrieb:
> Der Treiber hat 0,1Ohm
>
> und ich habe vref = 0,32V (Zwischen dem Poti und Logik GND)
>
> nach
>
> vref= A*(8*0,1)
Gut!
Deine Rechnung scheint prinzipiell richtig zu sein.
Allerdings ist das weiterhin der falsche Motor und er wird nie mehr als 
0,4A bei 12V aufnehmen können.

Mache doch mal ein 20V bis 30V Netzzteil dran, dann hat der Treiber auch 
die Chance den Strom zu regeln.

Wolfgang schrieb:
> Bei einem Strom von 200..400mA hält sich das noch seehr in Grenzen
> halten.
> Da ist die Temperatur eher ein Kriterium, um zu beurteilen, ob nicht
> irgendeiner der Ausgangsfets durchgeschossen ist.
Ja.
Ich ging mittlerweile davon aus, dass ein entsprechender Motor 
existiert.
Dem ist aber offensichtlich noch nicht so.
Gast #5413088
Lesenswert?

Wolfgang schrieb:
> slider101 schrieb:
>>> Hast du das nachgemessen?
>>
>> Ich habe dies aus dem Datenblatt übernommen dort ist
>
> Also nein
>
> Dann nimm ein Ohmmeter und miss jetzt nach.
>
> Wenn du kein Oszi hast, änderst du im Programm die Verzögerungszeit
> zwischen den Schritten auf einige Sekunden, hängst parallel zu den
> Wicklungsausgängen jeweils ein antiparallelgeschaltetes LED-Pärchen
> (rot/grün) nebst Vorwiderstand und vergleichst den Zeitverlauf der
> Spannung z.B. mit der Simulation bei Nanotec.

Bei beiden Paaren messe ich jeweils 52 Ohm
Gast #5413095
Lesenswert?

>> Kein Schutzkondensator
> Ein solcher ist zwingend erforderlich.

Was für einen soll ich hier verwenden?
was kann passieren wenn ich keinen benutze?


> Mache doch mal ein 20V bis 30V Netzzteil dran, dann hat der Treiber auch
> die Chance den Strom zu regeln.

Also ist einfach meine Kombination aus 12V Motor, 12V Netzteil und dem 
Treiber Schuld dass es nicht läuft, da der Treiber keinen Spielraum zum 
regeln hat?
Gast #5413112
Lesenswert?

slider101 schrieb:
> Also ist einfach meine Kombination aus 12V Motor, 12V Netzteil und dem
> Treiber Schuld dass es nicht läuft, da der Treiber keinen Spielraum zum
> regeln hat?

Nein. Du wirst nicht die maximale Drehzahl, das maximale Drehmoment 
erreichen, aber drehen, insbesondere ohne Last, sollte er immer.

MfG Klaus
Gast #5413116
Lesenswert?

Hier ist der Kondensator samt Begründung beschrieben.
https://www.pololu.com/product/1182
Bild "Using the driver"
Beachte die darunter stehenden "Warning" Kästen.

Es fehlt auf dem Bild allerdings die Verbindung von GND zu GND. Bei 
manchen Modulen ist diese nötig. Nicht bei allen.

slider101 schrieb:
> Also ist einfach meine Kombination aus 12V Motor, 12V Netzteil und dem
> Treiber Schuld dass es nicht läuft, da der Treiber keinen Spielraum zum
> regeln hat?
Weiß nicht....
Auf jeden Fall, kannst du dem Motor so nicht viel Mumm entlocken.
Gast #5413117
Lesenswert?

Klaus schrieb:
> slider101 schrieb:
>> Also ist einfach meine Kombination aus 12V Motor, 12V Netzteil und dem
>> Treiber Schuld dass es nicht läuft, da der Treiber keinen Spielraum zum
>> regeln hat?
>
> Nein. Du wirst nicht die maximale Drehzahl, das maximale Drehmoment
> erreichen, aber drehen, insbesondere ohne Last, sollte er immer.
>
> MfG Klaus

Bei mir dreht er jedoch garnicht auch nicht ohne Last, er summt zwar und 
macht mal einen Satz in die eine Richtung aber drehen tut er nicht.

Der Motor sollte in Ordnung sein sonst würde er ja kein Summen von sich 
geben oder?

Problem ist wahrscheinlich der Treiber?
Gast #5413124
Lesenswert?

Wolfgang schrieb:

> Tritt dein Problem auch mit einem anderen Treiberexemplar auf?

Das konnte ich leider nicht testen, da ich nur einen Treiber habe.

Jedoch hat es am Anfang funktioniert und der Motor hat sich wie gewollt 
gedreht aber nach erneutem zusammenstecken wollte er nicht mehr
Gast #5413143
Lesenswert?

Christian M. schrieb:
> slider101 schrieb:
> hat es am Anfang funktioniert
>
> Danke dass Du uns das auch noch sagst...

Danke nochmal an alle.

Und Entschuldigung für meine nicht wissenheit. Da es ja funktioniert 
hatte dachte ich es wäre ein Bedinfehler meiner Seits (Der Treiber lief 
ja)

Jetzt bin ich schlauer und den Kondensator baue ich auch noch ein ;)
Gast #5413153
Lesenswert?

Wolfgang schrieb:
> slider101 schrieb:
>> Das konnte ich leider nicht testen, da ich nur einen Treiber habe.
>
> Merke: Statt stundenlanger Fehlersuche, rechnet sich die Bestellung eine
> Zweitexemplares sehr schnell, insbesondere wenn es sich um Investitionen
> in der Größenordnung von 1€ handelt.
> Ebay-Artikel Nr. 401191508989

Gehe ich voll und ganz mit :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren