ich bin dabei erstmals Schrittmotoren anzusteuern. Ich habe einen Nema17 Schrittmotor (42Ncm 1.5A 1.8deg) welchen ich mit einem Treiber aus meinem alten 3D-Drucker ansteuere.
Ich habe schon einige kleine Projekte mit dem Motor umgesetzt und musste jedes mal feststellen, dass der Motor nicht die gewünschten Winkel einnimmt.
Um dies zu testen habe ich einen kleinen einfachen Testcode geschrieben:
#include <AccelStepper.h>
AccelStepper stepper1(1, 2, 5); // (Typeof driver: with 2 pins, STEP, DIR)
void setup() {
stepper1.setMaxSpeed(1200); // Set maximum speed value for the stepper
stepper1.setAcceleration(2000); // Set acceleration value for the stepper
stepper1.setCurrentPosition(0); // Set the current position to 0 steps
}
void loop() {
stepper1.moveTo(100);
stepper1.runToPosition();
delay(100);
stepper1.moveTo(0);
stepper1.runToPosition();
delay(100);
}
Folgende Probleme:
Eine umdrehung entspricht doch 200 Schritten. Wenn ich den Motor 200 Schritte drehen lasse, bekomme ich immer nur eine ca. 9/10 Umdrehung. Bei 100 Schritten aus dem Code entsprechend der selbe Fehler.
Bei einer Laufzeit von 10-20 Sekunden beginnt der Motor nichtmehr im selben Abschnitt zu Schwenken, sondern verrutscht in seiner bewegung und schweift sozusagen aus.
Ich habe schon verschiedene Schrittgeschwindigkeiten und Beschleunigungen ausprobiert. Auch die Treiberspannung habe ich mehrmals verändert. Und ich habe mehrere Treiber ausgetestet (alle vom selben Modell).
Hat einer eine Idee wo der Fehler liegen könnte ? Liegt es an meinem Code oder an meiner Hardware. Macht es sinn einen neuen Treiber zu bestellen (A4988) ?
Damit meine ich die Stellschraube auf dem Teiber welche ich einstellen kann. Wenn ich dir Spannung zwischen der Schraube und dem letzten Pin messe, hatte ich einen Wert von 1,2V. Habe diese Stellschraube aber auch etwas höher und niedriger eingestellt mit dem gleichen Ergebnis. Meinst du das damit, bei der Frage auf wie viel A ich den Treiber eingestellt habe ?
Unter Kenntnis des auf dem Board montiertem Shunt, kannst du aus der eingestellten Referenzspannung den Strom berechnen.
Ich empfehle für erste Tests ca 0.75A
Ich wiederhole:
Welche Versorgungsspannung?
Ich empfehle (provisorisch) ein 12V oder 24V, welches 2A liefen kann
Schrittverlust kann auch auftreten wenn das lastmoment zu hoch bzw Beschleunigung zu hoch ist. Was treibt dein Motor denn an? Oder ist dein test bereits ohne last?
Jain. Mechanisch vom Motor in Fullstep schon. Der Treiber kann aber Halbschritt oder Microschritte machen. Da vervielfachen sich die Schritte ( ganzzahlige Vielfache von 2). Auf ca 180Schritte kommst Du so nicht.
Ich glaube Du hast die Werte für maxspeed und acceleration zu hoch gewählt.
Wie verhält sich Dein Motor wenn Du langsamere werte probierst.
Auch würde ich die Pause zwischen den Bewegungen vergrößeren, nicht daß Du die Richtung änderst bevor der Motor genügend Zeit hatte die vorherige Bewegung zu vollenden.
Woher sollen wir jetzt wissen welcher Treiber das ist?
Ja, ein 1,5A Netzteil für einen 1,5A Motor ist wenig, weil Du davon ausgehen musst, dass es nicht wirklich 1,5A bringt.
Ich verstehe das so, dass Du dieses Netzteil nur für die Versorgung des Motors nimmst? Die Nema 17 von Stepper Online mit den 0,42Ncm / 1,5 A sind z.b. oft (meistens) mit 12V Nennspannung angegeben. Solch einen Motor mit 12V und auch noch weniger als 1,5A und steilen Anfahrrampen betreiben, da würde mich eher wundern wenn er keine Schritte verliert.
Ich betreibe meine 3V Nennspannung Stepper mit 36V, - da gehen dann auch steile Rampen...
Jep, denke ich, in Verbindung mit dieser Stromverorgung, auch...
Nein, die Änderung gibt bei mir einen Compilation error.
Das ist nur ein Test ohne Last..
Den Codeabschnitt mit 3 Parametern habe ich aus einem Guide kopiert.
Ich betreibe den Motor im Fullstep Modus. Auch im Halfstep oder 1/4 Step Modus habe ich das selbe Problem. Es sind keine Volle Umdrehungen, bzw. einige Steps werden wohl nicht ausgeführt. Eine geringeren maxspeed und acceleration habe ich auch schon ausprobiert.
Ich habe nun neue Treiber bestellt und werde es heute Abend mal mit denen Ausprobieren.
Was für ein Netzteil bräuchte ich denn? Auch wenn ich in Zukunft gerne 3-4 gleiche Motoren gleichzeitig ansteuern möchte ?
Motor nur lose auf dem Tisch liegend ? Da hatte ich auch schon mal Schrittverluste, so bald er festgeschraubt war waren des Schrittverlusste weg. Trat aber auch nur bei steilen Rampen auf.
Kommt drauf an wie viel Geld Du für das NT ausgeben möchtest, - billige sind sicher nicht "vollgasfest". Ich habe an der kleinen Fräse aber auch ein billiges, - für fünf 2A Stepper (fahre aber nur 1,8A) 36V 15A.
ein Stromtreiber wie der A4988 funktioniert etwas wie ein StepDown Wandler. Der notwendige Strom vom Netzteiler wird kleiner je größer die Motorstromversorgungsspannung ist.
Der Treiber gibt dem Motor (beide Wicklungen zusammen) max 1,41 des eingestellten Stromes. Vom Netzteil kommen dann aber nur ca 1/3 dieses Stromes ( bei 4V Motor und 12V Netzteil) .
Je höher die Motorspannung desto weniger Einfluß hat die Induktivität des Motors in Bezug auf Verlangsamung des Anstieg des Wicklungsstromes. Darum hat 36V bei einem 3V Motor sinn.
sollte... ich weiss nicht wie viele NT ich hier rumliegen habe die nicht das bringen was drauf steht, - sind meistens solche die irgendwo dabei waren.
Nach meiner Erfahrung nein...
Beim A4988 weiß ich auch nicht (verwende keine) ob 36V noch gehen. Das DaBla sagt max 35V, einige NT kann man zwar etwas runter drehen, - ich habe aber gerne etwas Abstand zum Limit.
Resonanzen können zu solchen Probleme führen
z.B. Last schafft dann Abhilfe.
Kann, muss aber nicht. (wird es auch wohl nicht)
Im Vollschritt wird immer nur 1 Spule bestromt
Bei Mikroschritten sieht das anders aus,
Dein A4988 kocht bei 1,5A sowieso auf.
Der muss deutlich niedriger eingestellt werden. ca. auf die Hälfte, aber das sagte ich doch schon.
Darum kannst du auch NIEMALS mit dem Treiber das volle Motor Dreh-Haltemoment erreichen.