Hallo, NEMA 17(C4335-9012-C1), Bipolar, 4 Drähte, 0,9 grd, 5,6 V, 0,64 A. Steuerung mit arduino und DRV8825. Versorungsspannung 24 V mit Elko 100µF. GND-Versorgungsspannung mit GND-arduino verbunden. Kein Microstepping benutzt. Am DRV8825 Referenzspannung von 0,32 V eingestellt. Verwendung von BasicStepperDriver.h und eingestellt auf 400 Steps/Umdrehung. Wenn ich den Motor mit move(1) x 360 schrittweise bewege oder mit rotate(360) ist alles i.O.. Die Welle dreht so kräftig, dass ich diese mit den Fingern nicht anhalten kann! Wenn ich auf die Motorwelle eine Aluscheibe(120mm Durchmesser, 90 g) anflansche, dann ruckt und vibriert der Motor nur noch bzw. macht zT. mal ein paar Grad. Das habe ich mit 3 Motoren getestet. Ich bin etwas am Verzweifeln. Was könnte die Ursache sein ? Gruß Frank
Frank H. schrieb: > Was könnte die Ursache sein ? Verwende Mikroschritte und eine Beschleunigungsrampe und spanne den Motor fest ein.
Frank H. schrieb: > Wenn ich den Motor mit move(1) x 360 schrittweise bewege oder mit > rotate(360) ist alles i.O.. Und wie schnell dreht sich die Achse dann? > Was könnte die Ursache sein ? Du kannst mit Masse auf der Achse nicht mit voller Geschwindigkeit losfahren. > Am DRV8825 Referenzspannung von 0,32 V eingestellt. Das bedeutet welchen Strom? Was für Shunts hast du?
Frank H. schrieb: > Ich bin etwas am Verzweifeln. Was könnte die Ursache sein ? Wilde Vermutung: Massenträgheit !
Lothar M. schrieb: > Und wie schnell dreht sich die Achse dann? bei move(360) und einem delay(2) je step weniger als 1 sec.
Dein Motor wird ein Trägheitsmoment in der Größenordnung von 4-5*10-6 kg*m² haben (~40-50 g*cm²), die Aluscheibe ca. 650*10-6 kg*m². Da ist der Faktor 100 dazwischen. Diese Trägheitsmasse muss der Motor beschleunigen. Das wird nur mit deutlich reduzierter Beschleunigung gehen, wie bereits erwähnt. Gruß Tom
Frank H. schrieb: > Steuerung mit arduino Da hier in den letzten Tagen wiederholt Schrittmotorprobleme angesprochen wurden, hatte ich Testprogramme für Arduino verlinkt: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp3a ff. Damit könntest Du etwas gezielter Deinen Motor ansteuern und testen. > bei move(360) und einem delay(2) je step Da weiß man doch überhaupt nicht, was passiert.
m.n. schrieb: > http://mino-elektronik.de/Generator/takte_impulse.htm#bsp3a ff. > Damit könntest Du etwas gezielter Deinen Motor ansteuern und testen. Danke, werde ich machen. Ich nahm bisher an, dass bei nur einem Step bzw. der Folge mehrerer Einzelner keine Anfahrrampe nötig ist.
Frank H. schrieb: > Lothar M. schrieb: >> Und wie schnell dreht sich die Achse dann? > > bei move(360) und einem delay(2) je step weniger als 1 sec. Rechne doch mal selber: Du willst die Masse deiner Aluscheibe in ca. 1/360 sec auf eine eine Geschwindigkeit von 1 Umdr. pro Sekunde beschleunigen ( Schrittmotoren haben "keinen" Schlupf) Wie viel Leistung wird dafür maximal benötigt ? Rechne mal !
Frank H. schrieb: > m.n. schrieb: >> http://mino-elektronik.de/Generator/takte_impulse.htm#bsp3a ff. >> Damit könntest Du etwas gezielter Deinen Motor ansteuern und testen. > > Danke, werde ich machen. > Ich nahm bisher an, dass bei nur einem Step bzw. der Folge mehrerer > Einzelner keine Anfahrrampe nötig ist. Für einen einzelnen Schritt kann es keine Anfahrrampe geben. Für mehrere hintereinder schon, sobald du oberhalb der Start-Stopp Frequenz startest. Und die ist eben abhängig von der angetriebenen Last. Wo soll man denn sonst eine Rampe benötigen? Mit freundlichen Grüßen Thorsten Ostermann
Thorsten O. schrieb: > Für einen einzelnen Schritt kann es keine Anfahrrampe geben. Und das wäre dann der erste Test: ein Schritt. Laaaaange Pause. Ein Schritt. Laaaaange Pause. Die laaaange Pause im Sekundenbereich ist dafür, dass sich das Ding nicht aufschwingt und in Resonanz kommt. Frank H. schrieb: > Ich nahm bisher an, dass bei nur einem Step bzw. der Folge mehrerer > Einzelner keine Anfahrrampe nötig ist. Auch wenn du das Ding mit 4kHz Taktfrequenz ansteuerst, ist das nur eine "Folge mehrerer Einzelner" Impulse. Eine ziemlich schnelle Folge eben...
Xerxes schrieb: > Du willst die Masse deiner Aluscheibe in ca. 1/360 sec auf eine eine > Geschwindigkeit von 1 Umdr. pro Sekunde beschleunigen ( Schrittmotoren > haben "keinen" Schlupf) Aber sie haben einen Lastwinkel und wenn der über 90° steigt, hat man eigentlich so gut wie verloren.
Das Ziel ist eigentlich mit jedem Schritt ca. 0,5 grd Vorschub zu haben. Das müßten dann mehrere Einzelschritte(Microsteps) sein. Dann wieder eine Pause mit Messungen usw. Die Zeit ist nicht so entscheidend. Meine Aluscheibe wollte ich aber von jetzt 90g auf ca. 200 bis 300g erhöhen. Ist das machbar ? Mit welcher arduino Library könnte man das machen ?
Hallo Frank, "Schritt" meint bei Schrittmotoren immer einen Voll- oder Mikroschritt. Du scheint eine Sequenz deiner Messung zu meinen. Unklares Wording führt zu Verwirrung. Ich würde es "pro Durchlauf" oder so ähnlich nennen, um Verwechselungen zu vermeiden. Wenn deine Scheibe noch größer werden soll, benötigst du entweder einen größeren Motor, oder eine Untersetzung. Durch die Untersetzung reduziert sich das am Motor wirkende Massenträgheitsmoment quadratisch. Und du kommst einfacher auf deine 0,5° pro Durchlauf/Messung. Mit freundlichen Grüßen Thorsten Ostermann
Meine Aluscheibe wollte ich aber von jetzt 90g auf ca. 200 bis 300g erhöhen. Ist das machbar ? Mit welcher arduino Library könnte man das machen ? ?????
uwe schrieb: > Meine Aluscheibe wollte ich aber von jetzt 90g auf ca. 200 bis 300g > erhöhen. Die Masse ist völlig egal. Es kommt auf das Trägheitsmoment an.
@Wolfgang, die Masse geht aber ins Trägheitsmoment ein. Und da er Alu nicht durch Blei ersetzen wird, ist zu befürchten, dass die Scheibe nicht breiter wird, sondern einen größeren Durchmesser bekommt. Der Radius geht aber sogar quadratisch ein. Mit freundlichen Grüßen Thorsten Ostermann
Für Stepper hat Arduino eine Kacklib. Rausschmeißen und umbauen auf AccelStepper. Da kannst du auch Beschleunigungen usw. einstellen.
pegelwendler schrieb: > Für Stepper hat Arduino eine Kacklib. Die "Standard"-Arduino Lib meint er gar nicht, denn die Standard-Lib unterstützt gar keine Schrittmotortreiber mit STEP(PULSE) / DIR Signaleingang. Er meint vermutlich die hier: https://github.com/laurb9/StepperDriver
Thorsten O. schrieb: > ist zu befürchten, dass die Scheibe nicht breiter > wird, sondern einen größeren Durchmesser bekommt. Der Radius geht aber > sogar quadratisch ein. Da hilft sicher eine entsprechende Riemen-Übersetzung (-> Plattenspieler-Antrieb) oder ein Getriebe (auch eine Übersetzung), wenn man nicht (ausgefeilte Rampen) fahren kann oder will.
Also ich verstehe das jetzt so. Meine Aluscheibe mit Messeinrichtungen wiegt zZ. 90g bei einem Durchmesser von 120 mm. Ich darf die Masse nicht erhöhen und muss den Durchmesser möglichst gering halten. Das wäre mit Leichtbau konstruktiv event. machbar. Vielleicht 80 bis 100mm Durchmesser und ca. 100 g Gesamtmasse. Eine Untersetzung wäre in meinem Falle sehr aufwändig. Kann man als Stepper-Library den AccelStepper benutzen. Bringt der die notwendige Ranmpe ?
Frank H. schrieb: > Kann man als Stepper-Library den AccelStepper benutzen. Bringt der die > notwendige Ranmpe ? Ja kann man und ja tut sie.
Frank H. schrieb: > Das Ziel ist eigentlich mit jedem Schritt ca. 0,5 grd Vorschub zu haben. > Das müßten dann mehrere Einzelschritte(Microsteps) sein. Dann wieder > eine Pause mit Messungen usw. Die Zeit ist nicht so entscheidend. > Meine Aluscheibe wollte ich aber von jetzt 90g auf ca. 200 bis 300g > erhöhen. Ist das machbar ? Mit welcher arduino Library könnte man das > machen ? Das ist nicht nur eine Frage der Library, sondern auch der Hardware. Eine Schwungmasse bzw ein Trägheitsmoment wirkt an einem Motor wie ein Kondensator und zwar ein ziemlich großer. Also im Ruhezustand fast so gut wie ein Kurzschluss. Um eine solche Scheibe in Bewegung zu setzen, brauchst du mindestens: 1. Einen Motor, der stark genug ist. 2. Eine stabile Spannungversorgung, die viel Strom liefern kann. 3. Einen Treiber, der diese Ströme aushält. 4. Kabel und Verbindungen mit geringen Widerständen.
Ergänzend: Denke daran, dass die drehende Scheibe dann Energie enthält. Der Motor wirkt dann als Generator und erzeugt Spannungen, die berücksichtigt werden müssen, wenn sie keinen Schaden anrichten sollen. Ganz allgemein ist es keine gute Idee, eine große Scheibe mit einem Schrittmotor zu bewegen.
Jobst Q. schrieb: > Eine Schwungmasse bzw ein Trägheitsmoment wirkt an einem Motor wie ein > Kondensator und zwar ein ziemlich großer. Also im Ruhezustand fast so > gut wie ein Kurzschluss. Nicht alles was hinkt, ist ein Vergleich. Probleme mit dem Loslaufen gibt es nur, wenn der Lastwinkel zu groß wird. Darum darf der nächste Schritt nicht zu früh kommen und damit eine Beschleunigung stattfindet, darf er auch nicht zu spät kommen, weil die Schwungmasse sonst wieder abgebremst wird. Mit der Funktion von Schrittmotortreibern, wie dem DRV8825 scheinst du noch etwas auf Kriegsfuß zu stehen. > 1. Einen Motor, der stark genug ist. Unsinn, wenn die Schritte mit dem richtigen Timing kommen, ist es egal wie kräftig der Motor ist, solange es um die Bewegung der Schwungmasse geht (Lagerreibung etc. also außen vor gelassen). > 2. Eine stabile Spannungversorgung, die viel Strom liefern kann. Die muss bei einem Schrittmotortreiber, wie dem DRV8825 wesentlich weniger Strom liefern, als durch die Motorwicklungen fließt, solange die Ausgangsspannung ausreichend hoch gegenüber der Nennspannung des Motors ist. Und die Stabilität ist eher unkritisch. Es muss aber ein Pufferkondensator vorhanden sein, der Energie aus dem Magnetfeld der Spulen aufnehmen kann. > 3. Einen Treiber, der diese Ströme aushält. Bei Treibern, wie dem DRV8825 bestimmt der Treiber, wieviel Strom fließt, nicht der Motor und nicht das Netzgerät. > 4. Kabel und Verbindungen mit geringen Widerständen. Bei Treibern, wie dem DRV8825 bestimmt der Treiber, wieviel Strom fließt. Ein Serienwiderstand durch die Kabel ist eher unkritisch, solange vom Netzgerät ausreichend viel Spannung zur Verfügung gestellt wird.
Wolfgang schrieb: > Mit der Funktion von Schrittmotortreibern, wie dem DRV8825 scheinst du > noch etwas auf Kriegsfuß zu stehen. Da hast du Recht. Von solchen Zaubertreibern, wo von Netzteil bis Motorstärke alles egal ist und es trotzdem funktioniert, hatte ich bisher noch nichts gehört.
Jobst Q. schrieb: > Von solchen Zaubertreibern, ... Nur weil du es nicht verstehst, muss es sich nicht um Zauberei handeln. Solange die vom Motor abzugebende Leistung nicht festgelegt ist, gibt es einige Spielräume für die Steuerung.
Hallo Wolfgang, Wolfgang schrieb: > Probleme mit dem Loslaufen gibt es nur, wenn der Lastwinkel zu groß > wird. Darum darf der nächste Schritt nicht zu früh kommen und damit eine > Beschleunigung stattfindet, darf er auch nicht zu spät kommen, weil die > Schwungmasse sonst wieder abgebremst wird. Soweit, so gut... > Mit der Funktion von Schrittmotortreibern, wie dem DRV8825 scheinst du > noch etwas auf Kriegsfuß zu stehen. >> 1. Einen Motor, der stark genug ist. > Unsinn, wenn die Schritte mit dem richtigen Timing kommen, ist es egal > wie kräftig der Motor ist, solange es um die Bewegung der Schwungmasse > geht (Lagerreibung etc. also außen vor gelassen). Das stimmt so nicht. Die Trägheitsmasse der Last muss schon grob in der gleichen Größenordnung liegen wie die des Rotors. Es hat schon seinen Grund, dass es unterschiedliche Motorgrößen und Bauformen gibt. Bei Oriental Motor gibt es sogar eine Serie mit extra höherer Rotorträgheit. >> 2. Eine stabile Spannungversorgung, die viel Strom liefern kann. > Die muss bei einem Schrittmotortreiber, wie dem DRV8825 wesentlich > weniger Strom liefern, als durch die Motorwicklungen fließt, solange die > Ausgangsspannung ausreichend hoch gegenüber der Nennspannung des Motors > ist. Und die Stabilität ist eher unkritisch. Es muss aber ein > Pufferkondensator vorhanden sein, der Energie aus dem Magnetfeld der > Spulen aufnehmen kann. Ihr habt beide Recht. Niemand sprach von einem Netzteil, das 10A Dauerstrom liefern kann. Aber kurze Stromspitzen -und zwar in beide Richtungen, also Sink und Source- muss das Netzteil zulassen. Daran gehen viele der billigen Motorshields kaputt. Der Elko auf der Platine ist viel zu klein, der Motor speist in die Versorgung zurück, die Spannung steigt kurzzeitig stark an und schon war es das. >> 3. Einen Treiber, der diese Ströme aushält. > Bei Treibern, wie dem DRV8825 bestimmt der Treiber, wieviel Strom > fließt, nicht der Motor und nicht das Netzgerät. Das ist zwar richtig, aber beim Rückspeisen muss der Treiber mit den höheren Spannungen klarkommen (s.o.). Wenn alles auf Kante genäht ist, sind große Schwungmassen ein Problem. >> 4. Kabel und Verbindungen mit geringen Widerständen. > Bei Treibern, wie dem DRV8825 bestimmt der Treiber, wieviel Strom > fließt. Ein Serienwiderstand durch die Kabel ist eher unkritisch, > solange vom Netzgerät ausreichend viel Spannung zur Verfügung gestellt > wird. Auch falsch, siehe oben. Sonst steigt lokal am Treiber die Spannung stark an, weil die Ladung nicht schnell genug in Richtung Netzteil abfließen kann. Mit freundlichen Grüßen Thorsten Ostermann
Thorsten O. schrieb: > Auch falsch, siehe oben. Sonst steigt lokal am Treiber die Spannung > stark an, weil die Ladung nicht schnell genug in Richtung Netzteil > abfließen kann. Beim DRV8825 bzw. den darauf basierenden Treiberplatinchen ist der Kondensator sowieso extern. Könnte man ja einfach parallel zu den üblichen 100µF noch ein paar weitere µF dranhängen um das Problem zu lösen. Die Kabel zum Netzteil würde der Strom dann gar nicht mehr erreichen.
Frank H. schrieb: > Bringt der die notwendige Ranmpe ? Bring erstmal Ordnung in deine Gedanken. Eine Rampe benötigst du nur, wenn der Schrittmotor zwischen zwei Messpositionen mehr als einen Vollschritt machen muss. Du schreibst hier von "0,5 grd" Vorschub. Ist das der Abstand zwischen zwei Messpositionen? Wieviel Vollschritte braucht dein Motor für eine 360°-Drehung? Frank H. schrieb: > Das Ziel ist eigentlich mit jedem Schritt ca. 0,5 grd Vorschub zu haben. Thorsten O. schrieb: > Die Trägheitsmasse der Last muss schon grob in der > gleichen Größenordnung liegen wie die des Rotors. Sehe ich nicht so. Nimm einen stehenden Rotor und lege das nächste Schrittmuster an. Dann entsteht ein tangential wirkender Kraftvektor, der den Rotor beschleunigt. Bevor der Rotor sich so weit gedreht hat, dass der Vektor nur noch radial oder gar tangential in Gegenrichtung wirkt, muss der nächste Schritt anliegen (sonst wird er wieder gebremst). Das ist für BLDC-Motoren (mit Sensoren) die normale Betriebart und funktioniert wunderbar. > Niemand sprach von einem Netzteil, das 10A > Dauerstrom liefern kann. Aber kurze Stromspitzen -und zwar in beide > Richtungen, also Sink und Source- muss das Netzteil zulassen. Die wenigsten Netzteile können Strom (Sink) aufnehmen und trotzdem laufen Schrittmotoren ;-) Es ist genau die Aufgabe der Kondensatoren auf der Motorspannung, dies Spitzen (in beide Richtungen) zu puffern. Die Ladungen fließen sowieso nur hin- und her. > Das ist zwar richtig, aber beim Rückspeisen muss der Treiber mit den > höheren Spannungen klarkommen (s.o.). Klar, aber soviel höher ist die nicht, wenn das Verhältnis von Versorgungs- zu Nennspannung z.B. 4:1 beträgt und der rückgespeiste Strom vernünftig von der Versorgungsschiene aufgenommen wird. > Sonst steigt lokal am Treiber die Spannung stark an, weil die Ladung > nicht schnell genug in Richtung Netzteil abfließen kann. Die Spannung über dem Kabel steigt an. Beim Treiber kommt das nicht an, weil der fließende Strom einen Spannungsabfall über dem Leitungswiderstand erzeugt. Ohne ausreichenden Kondensator auf der Versorgung macht es wenig Sinn, sich über andere Wenn und Abers die Haare zu raufen.
Wolfgang schrieb: > Die wenigsten Netzteile können Strom (Sink) aufnehmen und trotzdem > laufen Schrittmotoren ;-) Aufpassen: Schaltnetzteile schalten in der Regel ab, wenn die Ausgangsspannung extern erhöht wird. Eine Diode in Reihe zur Ausgangsspannung verhindert dies. Ein dickerer Elko oder eine elektronische Last/Zenerdiode verhindern Überspannung für den Motortreiber.
Wolfgang schrieb: > Eine Rampe benötigst du nur, wenn der Schrittmotor zwischen zwei > Messpositionen mehr als einen Vollschritt machen muss. > Du schreibst hier von "0,5 grd" Vorschub. > Ist das der Abstand zwischen zwei Messpositionen? > Wieviel Vollschritte braucht dein Motor für eine 360°-Drehung? Mein Schrittmotor hat, wie ich unter #1 schrieb 0,9 grd, also 400 Schritte je Umdrehung. Meine gedachten Messpositionen von 0,5 grd Abstand wären mit Vollschritten also nicht erreichbar. Mit Microschritten schon aber da ist das Drehmoment wohl auch deutlich geringer ? Da meine Motoren sowieso grenzwertig sind sollte ich als Messposition vielleicht 1 grd anstreben. Nach Deiner Aussage ist eine Rampe erst bei mehr als 1 Vollschritt möglich. Dann würden die weiter oben vorgeschlagenen Microschritte keinen Vorteil bringen ? Wie kann ich den vorhanden Schrittmotor in 1 grd Sprüngen vorwärts bewegen ? Sollte das mit Vollschritten oder mehreren Microschritten passieren ? Auf jeden Fall maximale Reduzierung der Schwungmasse. Bei der obigen Diskussion über Spannungen, Stromstärken, Rückspeisung usw. überlege ich mir, dass mir bereits 2 DRV8825 kaputt gegangen sind... Bringt es etwas, wenn ich zu dem vorhanden Elko 100 µF an der Spanungsversorgung einen weiteren gleichen parallel schalte ?
Frank H. schrieb: > Mit Microschritten schon aber da ist das Drehmoment wohl auch > deutlich geringer ? Wie kommst du darauf? > Dann würden die weiter oben vorgeschlagenen > Microschritte keinen Vorteil bringen ? Eine Rampe brauchst du nur, wenn du auf Grund der Trägheit andernfalls einen Lastwinkel von elektrisch 90° Überschreiten würdest. Wenn deine Gesamtbewegung sowieso kleiner ist, besteht keine Gefahr. Bei 1° und einem Vollschrittwinkel von 0.9° wäre sie das aber schon nicht mehr. Es besteht dann zwar noch keine Gefahr, dass der Motor den Schritt verliert, aber das Drehmoment ist zu Anfang reduziert, wenn die Schritte zu schnell kommen. Ist dein Motor überhaupt für Mikroschrittbetrieb in der Form geeignet? Nicht jeder Motor macht bei Mikroschrittansteuerung schön gleichmäßige Winkelschritte. > usw. überlege ich mir, dass mir bereits 2 DRV8825 kaputt gegangen > sind... Wobei sind sie dir kaputt gegangen? Ziemlich tödlich ist, wenn du an den elektrischen Verbindungen zum Motor rumfummelst, solange der unter Strom steht.
Jobst Q. schrieb: > Ganz allgemein ist es keine gute Idee, eine große Scheibe mit einem > Schrittmotor zu bewegen. Schrittmotoren sind überhaupt keine gute Idee! Der einzige Vorteil besteht preislich. Ansonsten haben Stepper einen schlechten Wirkungsgrad, müssen mit reichlich Margin betrieben werden, damit sie nicht ausrasten, sind zwangskommutiert, benötigen Startrampen usw., EMF kaum nachweisbar, fehlende Rückmeldung. Je nach Getriebe (kritisch bspw. Harmonic Drive, das ein größeres Losreißmoment benötigt) kann es für Stepper erforderlich sein, neben der Startrampe auch mit einem höheren Spulenstrom anzufahren und nach Beendigung der Rampe wieder abzusenken. Wenn der Preis nicht ganz so wichtig ist, auf 3-Phasen-BLDC umstellen! Dann gelten auch die Umrechnungen Strom <=> Moment, Spannung <=> Drehzahl wieder in der Praxis. Kaskadierte Regelung dran für Strom (Moment), Drehzahl und ggf. Position. Für alle Motorentypen wäre zur Steuerung des Stroms PWM und eine höhere Eingangsspannung zu empfehlen. Man stelle sich ein E-Auto vor, das von einem Stepper-Motor angetrieben würde: Reichweite 5 km, kein 4Q, keine Rekuperation, das Ende der Energiewende ...
dfIas schrieb: > Man stelle sich ein E-Auto vor, das von einem Stepper-Motor angetrieben > würde: Reichweite 5 km, kein 4Q, keine Rekuperation, das Ende der > Energiewende ... Das ist egal, wenn man nur 10cm-Strecken fahren will.
dfIas schrieb: > Schrittmotoren sind überhaupt keine gute Idee! > Der einzige Vorteil besteht preislich. Ansonsten haben > Stepper einen schlechten Wirkungsgrad, müssen mit > reichlich Margin betrieben werden, damit sie nicht > ausrasten, sind zwangskommutiert, benötigen Startrampen > usw., EMF kaum nachweisbar, fehlende Rückmeldung. Hmm. Kann das sein, dass Du das Prinzip nicht verstanden hast?
Hallo Wolfgang, Wolfgang schrieb: > Thorsten O. schrieb: >> Die Trägheitsmasse der Last muss schon grob in der >> gleichen Größenordnung liegen wie die des Rotors. > > Sehe ich nicht so. Nimm einen stehenden Rotor und lege das nächste > Schrittmuster an. Dann entsteht ein tangential wirkender Kraftvektor, > der den Rotor beschleunigt. Bevor der Rotor sich so weit gedreht hat, > dass der Vektor nur noch radial oder gar tangential in Gegenrichtung > wirkt, muss der nächste Schritt anliegen (sonst wird er wieder > gebremst). Das ist für BLDC-Motoren (mit Sensoren) die normale > Betriebart und funktioniert wunderbar. Du musst mir nicht erklären wie ein Schrittmotor funktioniert. Ich entwickle seit 25 Jahren Schrittmotorsteuerungen. Es geht hier auch nicht um deine Meinung oder Sicht der Dinge, sondern um Physik. Wenn die Trägheitsmasse der Last deutlich (also um Faktor 100 oder mehr) kleiner ist als der Motor, läuft der Motor quasi leer und beschleunigt in erster Linie sich selbst. Das ist sehr ineffizient. Ist die Last deutlich größer, "wedelt der Schwanz mit dem Hund", um es mal bildlich auszudrücken. Das Beschleunigungsvermögen des Antriebs leidet spürbar. Gerade beim ungeregelten Schrittmotor gibt es kaum Möglichkeiten, dass zu kompensieren. >> Niemand sprach von einem Netzteil, das 10A >> Dauerstrom liefern kann. Aber kurze Stromspitzen -und zwar in beide >> Richtungen, also Sink und Source- muss das Netzteil zulassen. > > Die wenigsten Netzteile können Strom (Sink) aufnehmen und trotzdem > laufen Schrittmotoren ;-) > Es ist genau die Aufgabe der Kondensatoren auf der Motorspannung, dies > Spitzen (in beide Richtungen) zu puffern. Die Ladungen fließen sowieso > nur hin- und her. Was du nicht sagst. Und Widerstand und Induktivität der Zuleitung zwischen Netzteil und Treiber stehen diesem Energieausgleich im Wege... >> Das ist zwar richtig, aber beim Rückspeisen muss der Treiber mit den >> höheren Spannungen klarkommen (s.o.). > Klar, aber soviel höher ist die nicht, wenn das Verhältnis von > Versorgungs- zu Nennspannung z.B. 4:1 beträgt und der rückgespeiste > Strom vernünftig von der Versorgungsschiene aufgenommen wird. Es geht aber nicht um das Verhältnis von Versorgungsspannung zu Nennspannung des Motors, sondern des Treibers. Und da bleibt man selten Faktor 4 unter dem möglichen, sondern versucht im Sinne einer guten Dynamik mit der Spannung möglichst hoch zu gehen. Ein paar Volt Reserve sind da schnell aufgebraucht. >> Sonst steigt lokal am Treiber die Spannung stark an, weil die Ladung >> nicht schnell genug in Richtung Netzteil abfließen kann. > Die Spannung über dem Kabel steigt an. Beim Treiber kommt das nicht an, > weil der fließende Strom einen Spannungsabfall über dem > Leitungswiderstand erzeugt. Ohne ausreichenden Kondensator auf der > Versorgung macht es wenig Sinn, sich über andere Wenn und Abers die > Haare zu raufen. Genau. Und wenn die Leitungen zu dünn sind hast du einen hohen Widerstand, inbesondere im oberen Frequenzbereich, also für die Stromspitzen. Da die Spannung am Netzteil konstant bleibt, steigt aber nicht nur die Spannung im Kabel an, sondern auch die am Treiber. Ich habe in den letzten 25 Jahren genug Fälle gesehen, wo genau das Probleme gemacht hat. Je größer die Last, desto mehr mechanische Energie ist im System, die beim Bremsen in elektrische Energie umgewandelt und zwischengespeichert werden muss. Mit freundlichen Grüßen Thorsten Ostermann
Hallo Frank, Frank H. schrieb: > Wolfgang schrieb: >> Eine Rampe benötigst du nur, wenn der Schrittmotor zwischen zwei >> Messpositionen mehr als einen Vollschritt machen muss. >> Du schreibst hier von "0,5 grd" Vorschub. >> Ist das der Abstand zwischen zwei Messpositionen? >> Wieviel Vollschritte braucht dein Motor für eine 360°-Drehung? > > Mein Schrittmotor hat, wie ich unter #1 schrieb 0,9 grd, also 400 > Schritte je Umdrehung. [...] > Wie kann ich den vorhanden Schrittmotor in 1 grd Sprüngen vorwärts > bewegen ? Du kannst den Motor in 0,9° oder 0,45°-Schritten bewegen. Bei der hohen Last ist Mikroschritt keine gute Idee. Der Motor ist ja ungeregelt. Im schlechtesten Fall macht der Motor bei den ersten 10 Mikroschritten garnichts, um dann irgendwann einen kräftigen Schritt zu machen und dann wieder gar nichts. > Sollte das mit Vollschritten oder mehreren Microschritten passieren ? > Auf jeden Fall maximale Reduzierung der Schwungmasse. Durch ein Getriebe oder eine Unterstung mit einem Riemen o.ä., ja. Mit freundlichen Grüßen Thorsten Ostermann
Weil es mich interessiert hat und ich es nicht so ganz nachvollziehen kann habe ich einen kleinen Testaufbau mit 7 gestapelten (und zusammengeklebten) CDs - mit Flansch für den Motor (altes Riementriebrad) - ca. 118g und 120mm Durchmesser. Ein 08/15 Nema 17 Schrittmotor (JK42HM 40-1684) und ein A4988-Treiber mit 100µF Elko in Zusammenspiel mit einem Arduino Nano und einer 12V Spannungsversorgung (Labornetzteil) bilden die technische Basis. Der Treiber ist auf ca. 300mA (lt. Labornetzteil) eingestellt - das reicht vollkommen aus um Schrittweise "Messpositionen" im Abstand von 0,9 Grad (1 Vollschritt) mit ca. 20 Hertz (weniger ist natürlich "vibratiosärmer") nachvollziehbar ohne Schrittverlust anzufahren. Bei ca. 5 Hertz reichen 200 mA auch locker aus. Natürlich muss der Schrittmotor bei der zu bewegenden Masse sicher befestigt sein, sonst führt der Aufbau ein reges Eigenleben. Der "Sketch" ist minimalistisch - ohne Library:
1 | int Schritte = 0; |
2 | |
3 | void setup() |
4 | {
|
5 | pinMode(8, OUTPUT); //Step |
6 | pinMode(9, OUTPUT); //Dir |
7 | |
8 | digitalWrite(8, LOW); |
9 | digitalWrite(9, LOW); |
10 | }
|
11 | |
12 | void loop() |
13 | {
|
14 | digitalWrite(8, HIGH); |
15 | delay(25); |
16 | |
17 | digitalWrite(8, LOW); |
18 | delay(25); |
19 | |
20 | Schritte = Schritte + 1; |
21 | |
22 | if (Schritte >= 400) |
23 | {
|
24 | delay(1000); |
25 | digitalWrite(9,!digitalRead(9)); |
26 | |
27 | Schritte = 0; |
28 | }
|
29 | }
|
Mehr Sicherheit gibt natürlich ein Getriebe / Untersetzung (hatte ich auch schon mal drauf hingewiesen) - aber grundsätzlich ist das für den geplanten Einsatzzweck kurzfristig "ausreichend". Ob das auch langfristig gilt (die Welle wird schon ordentlich belastet) wage ich allerdings zu bezweifeln.
Hallo Hugo H. Ich hatte erst jetzt Gelegenheit Deinen Test nachzuvollziehen. Mit Deinem Sketch verbessert sich erst mal nichts. Ich habe mit den Delay's gespielt und konnte eine Verbesserung des Ruckeln erreichen aber immer noch nicht praktikabel. Eventuell ist mein Motor schwächer ? Jetzt habe ich die zu bewegende Masse von 90 g auf 50 g verringert, den Durchmesser des Ganzen auf 100 mm reduziert und die Aufbauteile hauptsächlich mittig angebracht. So läuft es ruckelfrei. Es gibt aber noch ganz einzelne Situationen, bei welchen der Start verzögert beginnt. Wäre es eine Möglichkeit die Befestigung der Masse am Flansch in kleinen Gummielementen/Scheibe zu lagern ? So dass der Gummi nur die harten Startschläge etwas puffert. Aufschaukeln darf sich das natürlich nicht. Oder ist das Quatsch ? Ein Untersetzungsgetriebe für den Schrittmotor geht an dieser Stelle aus Kostengründen nicht, ich benötige 25 Stück dieser Vorrichtungen. Versuche mit 360 grd Servo habe ich auch gemacht aber das Spiel beträgt bei bezahlbaren Servos mehrere Grad. An anderer Stelle arbeite ich mit Schrittmotor und Zahnriemenuntersetzung. Gruß Frank
Frank H. schrieb: > Eventuell ist mein Motor schwächer ? Hast Du SLP und RST am A4988 verbunden? Ist der Motor irgendwo fest eingespannt? Woher genau beziehst Du die 24V?
Thorsten O. schrieb: > Und da bleibt man selten Faktor 4 unter dem möglichen, sondern versucht > im Sinne einer guten Dynamik mit der Spannung möglichst hoch zu gehen. > Ein paar Volt Reserve sind da schnell aufgebraucht. Das ist wichtig gib dem Motor soviel Spannung wie der gerade noch abkann Stromreglung soll der Treiber machen. Und nimm verdammt noch mal microsteps um die Belschleunigung gering zuhalten, da soll nichts rucken.
Ach ja 100uF sind ein schlechter Scherz, du musst die Energie aus der Bewegung ja irgentwo zwischen speichern.
Hugo H. schrieb: > Hast Du SLP und RST am A4988 verbunden? Ist der Motor irgendwo fest > eingespannt? Woher genau beziehst Du die 24V? Wie im #1 beschrieben benutze ich einen DRV8825. NEMA 17(C4335-9012-C1), 0,9 grd, 5,6 V, 0,64 A. Am DRV8825 Referenzspannung von 0,32 V eingestellt. RESET und SLEEP am Plus. Motor absolut fest geschraubt. 24V vom Schaltnetzteil 4A. 5V arduino über USB.
Amps skillen schrieb: > Ach ja 100uF sind ein schlechter Scherz, du musst die Energie aus der > Bewegung ja irgentwo zwischen speichern. Allgemein wird 100µF empfohlen. Was ist daran so falsch? Was ist richtig?
Alle microstep pins auf 1 für 1/32 steps und dann mit der accelstepper lib https://www.arduino.cc/reference/en/libraries/accelstepper/ ne schöne Rampe fahren dann rück es auch nicht mehr. Ach ja und gib dem Motor schön 40v mit nem Kühler regelt der Treiber den ruhe Strom schön ein.
Frank H. schrieb: > Allgemein wird 100µF empfohlen Im allgemeinen hängen da auch keine schweren Aluscheiben auf der Achse, deshalb kann man hier ruhig etwas mehr Kapazität verwenden um beim Abbremsen das Netzteil nicht so sehr zu belasten.
Frank H. schrieb: > Wie im #1 beschrieben benutze ich einen DRV8825. Sorry - vergessen :-/. Ich habe leider keinen DRV8825. Deine Beschaltung lt. Schema scheint korrekt zu sein. Wie sieht die denn konkret aus (Bild)? Die Idee mit den Microsteps halte ich jetzt nicht unbedingt für Zielführend bei dem erforderlichen Drehmoment zum "Anfahren".
Amps skillen schrieb: > Und nimm verdammt noch mal microsteps um die Belschleunigung gering > zuhalten, da soll nichts rucken. Danke, das wars. Mit Microsteps funktioniert es.
Frank H. schrieb: > Danke, das wars. Mit Microsteps funktioniert es. Das freut mich. Verwendest du jetzt auch die accelstepper lib? Wenn nein mach das mal das Ergebniss ist nicht nur ein bisschen besser sondern deutlich besser und signifikant zuverlässiger.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.