Hallo liebe Forengemeinde, heute mal wieder ein paar Fragen von mir. Ich habe mir einen Schrittmotor (http://www.pollin.de/shop/dt/NjQ1OTg2OTk-/Motoren/Schrittmotoren/Schrittmotor_PSM42BYGHW603_1_8_.html) bestellt und will diesen nun mit einem Atmega oder meinem Raspberry Pi ansteuern. Also habe ich angefangen meine Hausaufgaben zu machen und folgende Artikel gelesen: - http://de.wikipedia.org/wiki/Schrittmotor - http://www.rn-wissen.de/index.php/Schrittmotoren - http://www.mikrocontroller.net/articles/Schrittmotoren Und ich habe natürlich auch die Forensuche hier noch ein wenig zum Thema Schrittmotoren bemüht, aber es bleiben meinerseits noch einige Fragen offen. Ich weiß also schonmal dass ich einen Treiber benötige. Dazu habe ich mir den L297 und L298 bestellt und habe außerdem auch noch einen PBL3717A dazugepackt (als Alternative). Das zur Situation, nun zu meinen Fragen: 1) Im Datenblatt des Motors steht "200 Schritte (1.8°)". Nach meinem bisherigen Verständnis bezieht sich das aber auf den Microstepbetrieb.Der normale Fullstepbetrieb würde den Motor dennoch um 90°/Step drehen. Ist das richtig? 2) Im Datenblatt des PBL3717A steht, dass der IC für Fullstep/Halfstep/Quarterstep Betrieb geeignet ist. Bedeutet das, dass ich den Motor mit diesem Treiber maximal mit der Auflösung von 22.5°/Step betreiben kann? 3) Im Datenblatt des L297 steht ebenfalls, dass der IC nur für Fullstep/Halfstep Betrieb geeignet ist. Also ist mit meiner Überlegung den 297/298er Treiber zu "bauen" nur 45°/Step möglich? 4)Widersprüchlicherweise habe ich hier (http://www.stepperworld.com/Tutorials/pgMicrostepping.htm) aber gelesen/bzw es so verstanden, dass die 1.8° einem Fullstep entsprechen und diese durch Microstepping noch kleiner gemacht werden können. Da habe ich sicher etwas missverstanden oder? 5)Kann ich also meine Treiber überhaupt benutzen, um meinen Motor mit 200 Schritten um 360° zu drehen? 6)Das mit dem stromgesteuerten Microstepping ist glaube ich nur zur Hälfte in meinem Kopf angekommen. Wie genau regelt man denn den Strom vom µC aus? Wird der Sinus/Cosinus Wert über PWM in einen Spannungswert abgebildet und vom Treiber entsprechend interpretiert? Trotz der vielen Artikel komme ich mir noch ziemlich unbeholfen vor und hoffe, dass ihr mir da weiterhelfen könnt. Mein (in ferner Zukunft liegendes) Ziel ist es, eine Funktion für den µC zu schreiben, die als Parameter die steps übergeben bekommt und den Motor für negative Steps gegen den Uhrzeigersinn und für positive Steps im Uhrzeigersinn ansteuert. Vielen Dank schonmal für eure Hilfe.
Hallo t0mM3k! > 1) Im Datenblatt des Motors steht "200 Schritte (1.8°)". Nach meinem > bisherigen Verständnis bezieht sich das aber auf den > Microstepbetrieb.Der normale Fullstepbetrieb würde den Motor dennoch um > 90°/Step drehen. Ist das richtig? Jain. Ein Vollschritt sind 90° elektrisch und bei diesem Motor 1,8° mechanisch. 4 Vollschritte entsprechen einer elektrischen Umdrehung, weil sich dann das Bestromungsmuster wiederholt. Der Motor hat also 50 Polpaare. Bei Halbschritt hast du also 400 Schritte/U, bei 1/4 Schritt entsprechend 800. Damit dürften sich die nachfolgenden Fragen auch erledigt haben?! > 6)Das mit dem stromgesteuerten Microstepping ist glaube ich nur zur > Hälfte in meinem Kopf angekommen. Wie genau regelt man denn den Strom > vom µC aus? Wird der Sinus/Cosinus Wert über PWM in einen Spannungswert > abgebildet und vom Treiber entsprechend interpretiert? Der Treiber interpretiert nicht, sonder der Rotor richtet sich entsprechend dem Strom aus. Mit freundlichen Grüßen Thorsten Ostermann
> 1) Im Datenblatt des Motors steht "200 Schritte (1.8°)". Nach meinem > bisherigen Verständnis bezieht sich das aber auf den > Microstepbetrieb.Der normale Fullstepbetrieb würde den Motor dennoch um > 90°/Step drehen. Ist das richtig? Nein. > 2) Im Datenblatt des PBL3717A steht, dass der IC für > Fullstep/Halfstep/Quarterstep Betrieb geeignet ist. Bedeutet das, dass > ich den Motor mit diesem Treiber maximal mit der Auflösung von > 22.5°/Step betreiben kann? Nein. > 3) Im Datenblatt des L297 steht ebenfalls, dass der IC nur für > Fullstep/Halfstep Betrieb geeignet ist. Also ist mit meiner Überlegung > den 297/298er Treiber zu "bauen" nur 45°/Step möglich? Nein. > 4)Widersprüchlicherweise habe ich hier > (http://www.stepperworld.com/Tutorials/pgMicrostepping.htm) aber > gelesen/bzw es so verstanden, dass die 1.8° einem Fullstep entsprechen > und diese durch Microstepping noch kleiner gemacht werden können. Da > habe ich sicher etwas missverstanden oder? Nein, das stimmt schon, was da steht. > 5)Kann ich also meine Treiber überhaupt benutzen, um meinen Motor mit > 200 Schritten um 360° zu drehen? Ja. > 6)Das mit dem stromgesteuerten Microstepping ist glaube ich nur zur > Hälfte in meinem Kopf angekommen. Wie genau regelt man denn den Strom > vom µC aus? Wird der Sinus/Cosinus Wert über PWM in einen Spannungswert > abgebildet und vom Treiber entsprechend interpretiert? Der uC regelt da gar nichts, das macht der L297/PBL3717 für dich. Du sagst per STEP-Impulsen nur, auf welche Position er soll. Wichtig ist: Wenn du schnell drehen willst, brauchst du eine hohe Spannung an den Spulen, damit der Strom darin schnell ansteigen kann, eine höhere Spannung als der Motor verträgt. Da kommt dann die Stromregelung, die z.B. bei einem 1.8V/2A Motor an 24V Versorgung den Strom auf 2A begrenzt.
Hi >1) Im Datenblatt des Motors steht "200 Schritte (1.8°)". Nach meinem >bisherigen Verständnis bezieht sich das aber auf den >Microstepbetrieb.Der normale Fullstepbetrieb würde den Motor dennoch um >90°/Step drehen. Ist das richtig? Nein. Das ist bei diesem Motor Full-Step. >2) Im Datenblatt des PBL3717A steht, dass der IC für >Fullstep/Halfstep/Quarterstep Betrieb geeignet ist. Bedeutet das, dass >ich den Motor mit diesem Treiber maximal mit der Auflösung von >22.5°/Step betreiben kann? Nein. 200/400/800 Step/U oder 1,8°/0,9°/0,45°. Damit sollten auch die restlichen Fragen beantwortet sein. MfG Spess
Dein Fehler liegt bei 1) 200 Schritte für eine Umdrehung richtig und das sind dann auch Full Stepps. Deinem 297/298er Treiber gibst du halt einfach 200 Impulse und schon ist der Motor einmal um 360° gedreht.
Okay, euch erstmal schonmal vielen Dank. Also ist es erstmal Wumpe, welche der beiden Treiber ich nehme, da ich mit einem 200 Schritt Betrieb, bzw. mit einem 400 Schrittbetrieb bestens auskomme. Welchen würdet ihr empfehlen? Wo unterscheiden sie sich essentiell? MaWin schrieb: > Wichtig ist: Wenn du schnell drehen willst, brauchst du eine hohe > Spannung an den Spulen, damit der Strom darin schnell ansteigen kann, > eine höhere Spannung als der Motor verträgt. Da kommt dann die > Stromregelung, die z.B. bei einem 1.8V/2A Motor an 24V Versorgung den > Strom auf 2A begrenzt. Was heißt denn "schnell drehen"? Laut der Kennlinie meines Motors, verliert er deutlich Drehmoment bei über 600pps. Also 3rps im Fullstepbetrieb. Von daher wollte ich ohnehin nicht viel schneller drehen lassen. Ist das schon "schnell"? Wenn die Nennspannung meines Motors bei 12V liegt. Was wäre dann eine sinnvolle Betriebsspannung? 20V, 30V, 40V ? Und um einen Schrittmotor anzusteuern, benötige ich zwei PBL3717 ICs richtig?
Für den Motor sind 3 U/s vielleicht schon schnell, für andere sind es eher 10 U/s. Von Vollschritt würde ich grundsätzlich abraten, weil man da schnell Probleme mit Resonanzen bekommt. Zumindest Halbschritt sollte man schon verwenden, da ist die Gefahr solcher Probleme schon deutlich geringer. Noch besser ist natürlich Mikroschritt, aber das ist mit diesen antiquierten Treibern nicht zu machen. Mit freundlichen Grüßen Thorsten Ostermann
> Laut der Kennlinie meines Motors, verliert er deutlich Drehmoment bei > über 600pps. Also 3rps im Fullstepbetrieb. Von daher wollte ich ohnehin > nicht viel schneller drehen lassen. Ist das schon "schnell"? Die Kurve ist mit "constant current Driver" bezeichnet, ohne Spannungsangabe, also quasi beliebig hoher Spannung, das ist also das schnellste was geht. Verwendest du nur 12V (das geht dann ohne Stromregelung), verliert der Motor früher an Drehmoment. Leider schweigt sich das Datenblatt darüber aus. Je nach dem, wie viel Drehmoment du wirklich brauchst, kann er bereits dein Tempo nicht mehr schaffen.
MaWin schrieb: > Leider schweigt sich das Datenblatt darüber aus. Datenblätter gibt es halt noch nicht als Hörbuch. Insofern muss man mit dem Diagrammen zur Abhängigkeit des Drehmoments von der Schrittfrequenz vorlieb nehmen. Und im Datenblatt ebenfalls vorhandene Angabe zur Induktivität verrät einem, wie schnell sich der Spulenstrom auf oder abbauen kann.
Üblicherweise wird aber bei einer Drehzahl-Drehmoment Kennlinie angegeben, unter welchen Bedinungen (sprich bei welcher Spannung und mit welchem Phasenstrom, sowie Voll-/Halb-/Mikroschritt, zusätzliches Lastmoment und ggf. der verwendete Treiber) gemessen wurde. Ohne diese Angaben ist die Kennlinie quasi wertlos. Mit freundlichen Grüßen Thorsten Ostermann
Thorsten Ostermann schrieb: > unter welchen Bedinungen Die Angabe "... 0.4A Half Step constant current driver" ist in der Tat arg spärlich, insbesondere fehlt eine Spannungsangabe oder eine Info, wie erfolgreich der Strom-Treiber seinen Job erledigt. Und ob der TO den Motor in einem Frequenzbereich betreiben möchte, wo der Drehmomentrückgang zum Thema wird oder ob ihm eher mit ruhigem Lauf durch Mikroschrittbetrieb, z.B. mit einem einfachen A3967, geholfen ist, werden wir noch erfahren.
Danke nochmals für diese Rege Diskusion. Ich möchte bisher noch gar nichts konkretes umsetzen, nur lernen und verstehen und das geht nunmal am besten mit Do-It-Yourself. Also wenn ich das optimale Verhältnis zwischen Geschwindigkeit und Drehmoment aus diesen Motoren herausholen will. Was für einen Treiber empfehlt ihr dann, und welche Betriebsspannung sollte ich dafür nehmen? Wie komm ich auf diese Werte rechnerisch? Ich wusste bisher nicht, dass meine Treiber schon als "Antik" gelten ;-) Macht Mikrostepbetrieb bei diesen Motoren überhaupt Sinn, wenn die eh nur ca. 600pps "verkraften" ohne dass das Drehmoment allzusehr in den Keller geht? Schon im Halfstep landet man doch bei 400pps, wenn man eine Umdrehung pro Sekunde schaffen möchte (was ohnehin langsam genug ist).
Hallo t0mM3k! Die 600 oder 400pps beziehen sich immer auf Vollschritt. Bei Halbschritt musst du gedanklich die Skala mit 2 Multiplizieren. Übrigens bricht das Drehmoment bei 600pps noch garnicht wirklich ein, es lässt nur etwas nach. Das ist aber völlig normal. Es gibt in jeder Kennlinie einen Punkt, wo dass Drehmoment dann deutlich steiler abfällt. Das sieht man ab besten in Kennlinien, die eine logarithmische Frequenzskala haben. Bei deinem Motor ist das bei ungefähr 1200pps, also 6U/s der Fall. An dem Punkt stehen immerhin noch 20Ncm zur Verfügung. Merkwürdig ist allerdings, dass die gesamte Kennlinie deutlich unter dem angegebenen Haltemoment liegt. Das ist hier ja fast der Faktor 2. Üblich sind eigentlich 10-20%. Mit freundlichen Grüßen Thorsten Ostermann
Hallo zusammen, ich möchte diese alte Diskussion ins Leben rufen, da ich die gleiche Problematik habe: mit einem Raspberry will ich einen Schrittmotor ansteuern. Ich fand die obigen Fragen und Erklärungen sehr hilfreich und interessant. Dennoch habe ich auch eine Verständnisfrage: Der Treiber des Motors wird an den Kontakten des Raspberry angeschlossen (Pegelumwandler ist mit dabei). Ok. Da die Pins des Raspberry durch das Programm immer einen definierten Zustand haben müssen (High oder Low), habe ich Probleme, mir vorzustellen, wie die Ansteuerung für den Halbschritt erfolgt. Betrachten wir die folgende Tabelle http://rn-wissen.de/wiki/index.php/Schrittmotoren#Bipolare_Ansteuerung_Halbschritt bei den Schritten: #2, #4, #6, #8 sind die Pins in einen "unbelegten Zustand" geführt (der Einfachheit halber habe ich stillschwiegend angenommen, dass der Motor Bipolar ist und 4 Anschlüsse besitzt. Kein Common Spule). Dies ist aber unmöglich, da ich dem Raspberry nicht sagen kann: "setzte deine Pins in "floating"...", sondern muss ich die Pins hoch oder auf Null führen. Bei dem Vollschritt stellt sich das Problem überhaupt nicht: http://rn-wissen.de/wiki/index.php/Schrittmotoren#Bipolare_Ansteuerung_Vollschritt Da werden alle Pins zu einem präzisen und definierten Zustand gebracht. Als Versuch habe ich die Pins, die in der Tabelle als unbelegt definiert sind, auf Low gebracht. Der Motor zittert wie...ich will nicht nochmal versuchen, ohne zu verstehen ganz genau, wie die Halbschritt-Ansteuerung funktioniert. Gruß!
:
Bearbeitet durch User
Hallo Dave, es ist schlechter Stil, in einem fremden Thread eigene Fragen aufzuwerfen, die mit der Ausgangsfrage nichts oder nur wenig zu tun haben. Dafür macht man einen eigenen Beitrag auf. Ich verstehe deine Frage auch nicht so recht. Die von dir verlinkte Tabelle beschreibt Zustände der Motorwicklungen. Das hat mit den logischen Zuständen am steuernden µC in den meisten Fällen garnichts zu tun. Um zu deiner Frage konkret etwas sagen zu können, müsstest du uns allerdings auch erstmal verraten, um welchen Treiber es sich handelt. Mit freundlichen Grüßen Thorsten Ostermann
t0mM3k schrieb: > Danke nochmals für diese Rege Diskusion. > Ich möchte bisher noch gar nichts konkretes umsetzen, nur lernen und > verstehen und das geht nunmal am besten mit Do-It-Yourself. Was verstehst du unter "do it yourself"? 90% deiner Fragen hätten sich erübrigt, wenn du dir irgendein billiges set besorgt hättest und mal was ausprobiert hättest. Glaub doch nicht, das "lernen und verstehen" und Empfehlungen dich direkt zu einer Lösung ohne offene Fragen führt. Empfehlung: das billigste set, Treiber und Steppermotor, das DU finden kannst. µC ist vorausgesetzt Von mir aus schlachte irgendein Schrott zB Diskettenlaufwerk aus.
Dave A. schrieb: > Da die Pins des Raspberry durch das > Programm immer einen definierten Zustand haben müssen (High oder Low), > habe ich Probleme, mir vorzustellen, wie die Ansteuerung für den > Halbschritt erfolgt. Wenn du nur eine Leitung pro Spule (2 pro Motor) hast (und keinen Schrittmotor-Treiber-IC mit STEP und DIR Eingang), kannst du auch keinen Halbschritt. Dazu brauchst du 2 Ausgänge pro Spule (4 pro Motor) damit du zumindest 3 Zustände pro Spule (positiv, null, negativ) vorgeben kannst. Ordentliche Schrittmotor-Treiber können von STEP zu STEP natürlich richtig schalten, auch im Microschritt den Strom regeln. Ein ULN2803 ist kein ordentlicher Schrittmotor-Treiber.
Hi Michael, ja stimmt..ich habe vergessen zu sagen, dass ich einen Treiber zwischen Rpi und Schrittmotor einsetzen will. Der Treiber ist der L298HN und der Schaltplan kann hier gesehen werden: http://www.logicaprogrammabile.it/wp-content/uploads/2013/05/Schema-Motore.png Obwohl darauf ein Arduino zu sehen ist, ist der Schaltplan auch mit einem Rpi realisierbar (natürlich mit Pegelwandler für die Eingänge des Treibers). Also der Motor hat insgesamt 2 Leitungen pro Spule (http://www.pollin.de/shop/dt/NDQ1OTg2OTk-/Motoren/Schrittmotor./Schrittmotor_PSM35BYG104_1_8_.html). Dh dass ich den Motor sowohl Halb- als auch Vollschritt ansteuern kann. Bzgl meiner vorherigen Fragen: Die Zustände, welche als unbelegt bei einem bestimmten Schritt gekennzeichnet sind (sehe Tabelle oben), müssen auf Null durch den Pin des Rpi gebracht werden?
Dave A. schrieb: > Bzgl meiner vorherigen Fragen: Die Zustände, welche als unbelegt bei > einem bestimmten Schritt gekennzeichnet sind (sehe Tabelle oben), müssen > auf Null durch den Pin des Rpi gebracht werden? Der Motoranschluß muß unbelegt, sprich hochohmig geschaltet werden. Der Rpi steuert den Treiber an und was dann der Treiber macht und zum Motor gibt, hängt vom Treiber ab. Das heißt, du mußt schauen, was der Pin des Rpi rausgeben muß, damit der Ausgang des Treibers stromlos/hochohmig wird. zB den richtigen EN des 298 auf Low legen.
flascheleer schrieb: > Der Motoranschluß muß unbelegt, sprich hochohmig geschaltet werden. Der > Rpi steuert den Treiber an und was dann der Treiber macht und zum Motor > gibt, hängt vom Treiber ab. Das heißt, du mußt schauen, was der Pin des > Rpi rausgeben muß, damit der Ausgang des Treibers stromlos/hochohmig > wird. zB den richtigen EN des 298 auf Low legen. Suuuuuuuuupeeeeeeeeeerrrrrrrrrrrrrrr Danke! Genau das wollte ich wissen
Dave A. schrieb: > Der Treiber ist der L298HN und der Schaltplan kann hier gesehen werden: > http://www.logicaprogrammabile.it/wp-content/uploads/2013/05/Schema-Motore.png Die oberen vier Dioden sind falsch eingezeichnet.
Dave A. schrieb: > Der Treiber ist der L298HN und der Schaltplan kann hier gesehen werden: Damit kann man Halbschritt fahren, jede Spule hat ja zwei Leitungen zum uC, also 4 Kombinationen, davon 2 für positive und negative Polarität, und zwei mit Ausgängen in gleicher Polarität, also keine Spannung an der Spule. Der L298 hat auch noch ENABLE Eingänge. Wenn man die nicht mit + verbindet wie im Schaltplan sondern zum uC führt, kann man einzelne Spulen auch abschalten. Beides ermöglicht Halbschritte. Wenn man mit dem Schrittmotor unterschiedliche Drehzahlen fahren will, wird man je nach Drehzahl von Halb auf Vollschritt und umgekehrt umschalten müssen, um Resonanzen mit folgendem Schrittverlust des Motors zu verhindern. Man sollte besser Mikroschritt-Treiber nehmen, wie TB6560. > Die oberen vier Dioden sind falsch eingezeichnet. Stimmt.
:
Bearbeitet durch User
Hallo Michael, > Wenn man mit dem Schrittmotor unterschiedliche Drehzahlen fahren will, > wird man je nach Drehzahl von Halb auf Vollschritt und umgekehrt > umschalten müssen, um Resonanzen mit folgendem Schrittverlust des Motors > zu verhindern. Warum sollte man das tun? Halbschritt ist in Hinblick auf mögliche Resonanzen immer besser als Vollschritt. Ohne Stromregelung bekommt man dann höchstens das Problem, dass das Drehmoment in den Halbschrittpositionen (nur eine Wicklung bestromt) niedriger ist als in den Vollschrittpositionen. Mit Stromregelung kann man das mit einfachen Mitteln kompensieren. Mit freundlichen Grüßen Thorsten Ostermann
Michael B. schrieb: > Der L298 hat auch noch ENABLE Eingänge. Wenn man die nicht mit + > verbindet wie im Schaltplan sondern zum uC führt, kann man einzelne > Spulen auch abschalten. > > Beides ermöglicht Halbschritte. Das wollte ich gerade fragen... Dann reicht es vollkommen aus, wenn ich die Eingänge (Enable1 und Enable2) nach der aufgeführten Tabelle (für den Halbschritt) bein den unbelegten Pins ausschalte. Oder? Nun verstehe ich wieso diese Enable-Eingänge... S-u-p-e-r.
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.