Hallo, ich möchte einen Schrittmotor mit Getriebe(27:1) mit einem Drehimpulsgeber steuern. Ich suche einen fertigen Sketch da ich selber das programmieren nicht beherrsche. Ich habe jetzt einige Sketche durchprobiert die ich gefunden habe, jedoch hat keins mein Problem gelöst. Ich möchte in dem Sketch einstellen können z.B. 1 Encoder Schritt = 100 Motor Schritte. Das ganze noch mit definierbarer Geschwindigkeit. Ich habe ein Youtube Video gesehen wo glaube ich jemand es so hat wie ich es möchte: https://www.youtube.com/watch?v=aCBEXe7H-J0 jedoch ist seine Webseite wohl down.
Schau dir die TIC Schrittmotorcontroller an die können das von Haus aus
Tobias A. schrieb: > Ich suche einen fertigen Sketch da ich selber das programmieren > nicht beherrsche. Das Leben ist kein Wunschkonzert > Ich habe ein Youtube Video gesehen wo glaube ich jemand es so hat wie > ich es möchte: https://www.youtube.com/watch?v=aCBEXe7H-J0 jedoch ist > seine Webseite wohl down. Dann musst du den im Video gezeigten Code vielleicht selber eintippen und verstehen lernen. Das Einbinden der Encoder Library von Paul Stoffregen in deine Arduino IDE kann dir sowieso keiner abnehmen. Ohne die läuft da gar nichts.
Den Strom über den ENCODER zum Schrittmotor leiten. Du brauchst weder programmieren und auch keine Elektronik.
max123 schrieb: > Den Strom über den ENCODER zum Schrittmotor leiten. Du brauchst > weder > programmieren und auch keine Elektronik. WIRKLICH zum Schrittmotor?? Oder doch eher zum Stepper-Driver?!?! Wenn es von Max nur ungeschickt ausgedrückt war, und er tatsächlich den Driver meinte, dann hat er vollkommen recht - ABER: Da geht allerdings nur 1:1 oder im Mikroschrittbetrieb entsprechend höher untersetzt. Bei einem Stepper mit Getriebe 27:1, einem Drehimpulsgeber mit sagen wir mal 20 Impulsen pro Umdrehung, einem Stepper mit dem üblichen 1,8° Schrittwinkel und das ganze im Vollschritt-Modus würde das bedeuten, dass Tobias genau 270 Runden am Drehgber drehen muss, damit seine Motor-Getriebe-Kombination einmal ein Kreis fährt. ^^ Das klingt nach dem Beginn einer langwierigen Sehnenscheidenentzündung.
Christian schrieb: > Wenn es von Max nur ungeschickt ausgedrückt war, und er tatsächlich den > Driver meinte, dann hat er vollkommen recht - ABER: > > Da geht allerdings nur 1:1 oder im Mikroschrittbetrieb entsprechend > höher untersetzt. Wenn auch nur ungeschickt ausgedrückt: Ein Treiber, der über Step/Dir gesteuert wird, und dann eventuell auch Mikroschrittbetrieb beherrscht, funktioniert für so eine Synchronsteuerung natürlich NICHT. Die vom Inkrementalgeber erzeugten Phasensignale müssen dafür direkt mit H-Brücken verstärkt werden und dann die Wicklungen eines bipolaren Schrittmotors bestromen.
Wolfgang schrieb: > Wenn auch nur ungeschickt ausgedrückt: Ein Treiber, der über Step/Dir > gesteuert wird, und dann eventuell auch Mikroschrittbetrieb beherrscht, > funktioniert für so eine Synchronsteuerung natürlich NICHT. Eigentlich bringt ein Quadraturencoder auf seinen beiden Spuren genau das, was ein Impuls/Richtungs-Interface braucht: je nach Drehrichtung ist genau bei einer Flanke am Step-Eingang der Dir-Eingang definiert entweder high oder low. Christian schrieb: > Bei einem Stepper mit Getriebe 27:1, einem Drehimpulsgeber mit sagen wir > mal 20 Impulsen pro Umdrehung, einem Stepper mit dem üblichen 1,8° > Schrittwinkel und das ganze im Vollschritt-Modus würde das bedeuten, > dass Tobias genau 270 Runden am Drehgber drehen muss, damit seine > Motor-Getriebe-Kombination einmal ein Kreis fährt. Tja, falsches Bauteil. Ich nehme einen Drehgeber mit 4096 (oder 8192 oder gar 16384) Impulsen pro Umdrehung, dann relativiert sich das ganz schnell. Die Frage ist nur, ob der Motor dann noch hinterher kommt. Insofern würde ich hier auch den entkoppelten Ansatz wählen und mit einem Drehencoder (am besten samt "Beschleunigung") einlesen, und dann einen "Imuplsfolger" bauen, der die vorgewählte Position auf dem Schrittmotor nachfährt. Tobias A. schrieb: > Ich habe jetzt einige Sketche durchprobiert die ich gefunden habe, > jedoch hat keins mein Problem gelöst. An dieser Stelle wird dann selbständiges Denken notwendig. > Ich möchte in dem Sketch einstellen können z.B. 1 Encoder Schritt = 100 > Motor Schritte. Also such einen Code für das Einlesen eines Encoders. Lies dessen Position in einen "endlosen" Zähler ein. Multipliziere den Zähler mit deinem gewünschten Faktor. Und dann fahre mit dem Motor diese "Position" an. Du musst also um die Differenz zur letzten Motorposition weiterfahren. > Das ganze noch mit definierbarer Geschwindigkeit. Im Grunde musst du dann den Motor auch noch mit passenden Rampen anfahren, damit der keine Schritte verliert. Dann wird es aber schon eher sportlich. Im Besonderen, wenn der Motor gerade positioniert, am Bremsen ist und du weiterdrehst. Oder wenn du mitten unterm Verfahren den Encoderknopf in die andere Richtung drehst.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Tja, falsches Bauteil. Ich nehme einen Drehgeber mit 4096 (oder 8192 > oder gar 16384) Impulsen pro Umdrehung, dann relativiert sich das ganz > schnell. Die Frage ist nur, ob der Motor dann noch hinterher kommt. Stimmt, da relativiert es sich natürlich. In dem Video welches Tobis verlinkt hat, wird allerdings ein Drehgeber gezeigt, bei dem man zurecht anzweifeln darf, dass der überhaupt über 100 Impulse pro Umdrehung kommt. Die Inkrementalgeber, die Du meinst, sind wahrscheinlich solche, die man auf Antriebswellen schraubt, um ein Positionsfeedback zu erhalten. Solange man das alles vernünftig dimensioniert, kommt der Motor schon noch hinterher. Ein Stepper (mit 27:1 Getriebe) schafft im Leerlauf mühelos 400 RPM (natürlich geht das Moment ordentlich in die Knie) Im Vollschrittmodus wären dass für den Treiber 80.000 Impulse pro Minute - 1.333..... pro Sekunde. bei 16.384 Impulsen pro Umdrehung muss man tatsächlich schon behutsam drehen. (Im Mikroschrittbetrieb geht's aber wieder) Lieber Tobias, es wäre interessant, welchen Encoder Du konkret verwendest. Ist es ein von Hand bedienbarer, oder ein hochauflösender Winkelencoder?? Ist er hochauflösend würde ich es ganz gleich machen, wie es Lothar schon sehr gut beschrieben hat. Damit das ganze zuverlässig funktioniert, würde ich auch die Positionen des Drehgebers buffern. Das Programm soll dann den Motor der Reihe nach alle gebufferten Positionen mit definierten Rampen und einer definierten Geschwindigkeit anfahren lassen. Die Samplerate mit welcher die Encoderpositionen gebuffert werden, muss dann natürlich mit den Rampen und der Geschwindigkeit des Steppers zusammenpassen (resultierende Abarbeitungszeit), nicht dass der "Variablenspeicher" überläuft. Lothar M. schrieb: > Im Besonderen, wenn der Motor gerade positioniert, am > Bremsen ist und du weiterdrehst. Oder wenn du mitten unterm Verfahren > den Encoderknopf in die andere Richtung drehst. Spätestens da, wenn nicht eh schon lange vorher wirst du mit aneinander gestöpselten Sketches ohne die Logik der Programmierung zu verstehen leider nicht mehr weiter kommen. Am leichtesten wird es daher wohl sein, wenn Du Deine Bauteile so dimensionierst, dass der Stepper selbst dann wenn Du wie ein Irrer am Encoder drehst, dem unmittelbar noch gut folgen kann. Dann halten sich der Programmieraufwand und die Probleme selbst beim "plötzlichen" Richtungswechsel in Grenzen, vor allem dann, wenn ein paar verlustige Schritte egal sind. In dem Fall könnte es tatsächlich auch ohne µC mit einem pulse/dir Treiber klappen. Einfach mal testen!! Wofür soll das Konstrukt eigentlich verwendet werden? Gutes Gelingen!! LG, Christian
Lothar M. schrieb: > Eigentlich bringt ein Quadraturencoder auf seinen beiden Spuren genau > das, was ein Impuls/Richtungs-Interface braucht: je nach Drehrichtung > ist genau bei einer Flanke am Step-Eingang der Dir-Eingang definiert > entweder high oder low. Dann hast du aber schon wieder eine Umsetzlogik dazwischen. Vergleiche einfach mal das Ausgangssignals eines Inkrementalgebers mit dem Bestromungsmuster eines bipolaren Schrittmotors im Vollschrittbetrieb. Da geht es nicht um Flanken, sondern einfach 1:1 Phasensignal Inkrementalgeber auf Motorbestromung.
Nachdem es sich bei Schrittmotortreibern mittlerweile um Ein-paar-Euroartikel handelt stellt sich die Frage, ob man selbst die Notwenigen Vollbrücken aufbauen soll normalerweise nicht. Nachdem Inkrementalgeber keinen Strom können und auch das „Bürstenfeuer“ im Geber selbst bei kleinen Strömen dafür sorgen wird, dass diese nach nur kurzer Zeit ihren Dienst quittieren, kommt man um einen Treiber nicht herum. Mit Pulse und Direction kann man dann schon gut arbeiten.
christian.thomasser@styriatronic.at schrieb: > Lieber Tobias, es wäre interessant, welchen Encoder Du konkret > verwendest. Ist es ein von Hand bedienbarer, oder ein hochauflösender > Winkelencoder?? Es ist der Standard Encoder der bei jedem Arduino Experimentiersatz dabei ist, hat glaube 20 Schritte pro Umdrehung. Der Treiber ist ein TB660 nutze ihn glaube mit 16 Microsteps aber das ist ja Einstellungssache. Lothar M. schrieb: >> Das ganze noch mit definierbarer Geschwindigkeit. > Im Grunde musst du dann den Motor auch noch mit passenden Rampen > anfahren, damit der keine Schritte verliert. Dann wird es aber schon > eher sportlich. Im Besonderen, wenn der Motor gerade positioniert, am > Bremsen ist und du weiterdrehst. Oder wenn du mitten unterm Verfahren > den Encoderknopf in die andere Richtung drehst. Sollte simpel gehalten werden und muss kein Präzisionswerkzeug sein. christian.thomasser@styriatronic.at schrieb: > Wofür soll das Konstrukt eigentlich verwendet werden? Ich dachte den Motor für ein Rolladenantrieb. Aber erstmal mal zum rumspielen mit dem Motor und austesten was er so an Kraft hat. Weil ich habe jetzt keine Möglichkeit den Motor mehr oder weniger Kontrolliert drehen zulassen.
Tobias A. schrieb: > Es ist der Standard Encoder der bei jedem Arduino Experimentiersatz > dabei ist, hat glaube 20 Schritte pro Umdrehung. Damit hatte ich dann schon mal Recht :) Und wie ich schon angemerkt habe, wirst Du in dem Fall nicht um eine entsprechende Logik herumkommen. Alleine schon, weil Du anstatt zu Schlafen, die Ganze Nacht am Encoder drehen müsstest, damit bis zum nächsten morgen die Rollläden offen sind. Halte Dich an die ausführliche Beschreibung von Lothar, potenziere deine Encoder-Impulse um einen beliebigen Faktor, buffere diese und lass dann den Motor die zwischengespeicherten Positionen mit einer definierten Rampe und Geschwindigkeit anfahren. Für eine Automatisierung solltest Du dann aber unbedingt Endschalter verwenden, damit Dein Antrieb bei Schrittverlusten nicht über die Endlagen hinausfährt. Ein entsprechender Stepper mit 27:1 Übersetzung und niedriger Drehzahl hat schon ordentlich Schmalz und kann so einiges kaputt machen. LG und gutes Gelingen!!
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.