Forum: Mikrocontroller und Digitale Elektronik Schrittmotor schrittweise ansteuern?


von Flo N. (dave001)


Lesenswert?

Hallo an Alle :)

ich habe mich etwas in die Welt der Schrittmotoren eingelesen und die 
Ansteuerung funktioniert anscheinend hauptsächlich über Zeitschleifen ->
Pin
Zeit
Pin
..

Gibt es auch eine Möglichkeit zur Schrittweisen Ansteuerung? In meinem 
Fall hat mein Schrittmotor eine Schrittweite von 1,8° (nur zu Info)

Freue mich auf jede Antwort :)

LG
Dave

von m.n. (Gast)


Lesenswert?

Ja.

von Martin K. (Gast)


Lesenswert?

Einen Schrittmotor kann man auch rein hardware-mäßig ansteuern.
Ringregister. Takt kann man jederzeit anhalten oder jeden Takt einzeln 
weiterschalten.
Geht natürlich auch per Software.

von Flo N. (dave001)


Lesenswert?

OH Ok Danke !

Ich verwende einen Schrittmotor Nema und habe dafür einen Arduino mit 
einem Schrittmotorshield. Gibt es vielleicht nette Seiten, von wo ich 
mir den Code "klauen" bzw. Beispielcodes nutzen kann?

von Dussel (Gast)


Lesenswert?

Flo Norbert schrieb:
> Arduino
Flo Norbert schrieb:
> Gibt es vielleicht nette Seiten, von wo ich
> mir den Code "klauen" […] kann?
Den Beitrag hast du aber jetzt nur geschrieben, um Vorurteile 
Arduinonutzern gegenüber voll zu bestätigen, oder?

Anscheinend hast du schon Code. Wenn du da nicht auf Zeit, sondern auf 
ein anderes Ereignis wartest, hast du deinen Schrittbetrieb. Also nimm 
'Zeit' raus, baue einen anderen 'Trigger' ein und schon hast du es.

von Pandur S. (jetztnicht)


Lesenswert?

Im Prinzip geht es ja darum dem Schrittmotor einzelne Pulse zu geben. 
Sinnvollerweise sind die Pulse aequidistant, sonst bekommt der Motor 
Muehe zu folgen. Wenn die Aenderung des Schrittabstandes zu abrupt ist 
kann der Motor nicht mehr folgen.

von Flo N. (dave001)


Lesenswert?

Also Vorurteile habe ich keine, ich finde es sehr hilfreich.

Ja stimmt, ich habe bereits einen Code von Sprinter (Reprap). Da wird 
über Zeitschleifen gesteuert, nur ist es für mich persönlich besser 
Schritte zu definieren um auf meine Position zu kommen, weil ich die 
Positionen "exakt" anfahren soll.

Ich probiere das einmal mit dem Trigger und ich hoffe es klappt :X. 
Danke!

: Bearbeitet durch User
von Flo N. (dave001)


Lesenswert?

Jetzt Nicht schrieb:
> Wenn die Aenderung des Schrittabstandes zu abrupt ist
> kann der Motor nicht mehr folgen.

An so etwas habe ich auch schon gedacht. Ich denke es kann passieren, 
dass der Schrittmotor nicht so eine flüssige Bewegung hinbekommt 
(vielleicht)

: Bearbeitet durch User
von Mick (Gast)


Lesenswert?

Wir verwenden diese Bibliothek: 
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html

Du kannst die Zielposition des Motors über die Methode targetPosition() 
setzen und dann jeweils mit run() einen Schritt weiter fahren.

von Dussel (Gast)


Lesenswert?

Flo Norbert schrieb:
> nur ist es für mich persönlich besser
> Schritte zu definieren um auf meine Position zu kommen, weil ich die
> Positionen "exakt" anfahren soll.
Dann mach nur eine gewissen Anzahl an Schleifendurchläufen. Meine 
Antwort bezieht sich darauf, nur einzelne Schritte zu machen.

Flo Norbert schrieb:
> An so etwas habe ich auch schon gedacht. Ich denke es kann passieren,
> dass der Schrittmotor nicht so eine flüssige Bewegung hinbekommt
Mit flüssig hat das nicht viel zu tun. Aber wenn das geforderte 
Drehmoment zu hoch ist, kann der Motor der Ansteuerung nicht mehr folgen 
und verliert Schritte. Deshalb muss man manchmal mit einer 
Geschwindigkeitsrampe anfahren und bremsen.

von Georg (Gast)


Lesenswert?

Flo Norbert schrieb:
> ist es für mich persönlich besser
> Schritte zu definieren um auf meine Position zu kommen, weil ich die
> Positionen "exakt" anfahren soll.

Hast du schon mal daran gedacht, dass man mit einem Prozessor die 
Schritte auch ZÄHLEN kann?

Georg

von Axel S. (a-za-z0-9)


Lesenswert?

Flo Norbert schrieb:
> ich habe mich etwas in die Welt der Schrittmotoren eingelesen und die
> Ansteuerung funktioniert anscheinend hauptsächlich über Zeitschleifen ->
> Pin
> Zeit
> Pin
> ..

Das ist Unsinn. Nur Anfänger verwenden Zeitschleifen. Tatsächlich 
braucht man eine Art Zeitsteuerung, nur eben nicht mit Zeitschleifen.

> Gibt es auch eine Möglichkeit zur Schrittweisen Ansteuerung? In meinem
> Fall hat mein Schrittmotor eine Schrittweite von 1,8° (nur zu Info)

Jeder Schrittmotor wird schrittweise angesteuert. Deswegen heißt er 
so. Außerdem hat jeder Schrittmotor eine mechanische Trägheit und kann 
nicht nur nicht beliebig schnell drehen, sondern auch nicht beliebig 
schnell beschleunigen.

Was er dafür kann, ist eine bestimmte Position auf den Schritt genau 
anfahren.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> Sinnvollerweise sind die Pulse aequidistant, sonst bekommt der Motor
> Muehe zu folgen.

Um Gottes Willen NEIN !!!
Sinnvollerweise sind diese Pulse in keinster Weise von gleicher Frequenz 
(aka. äquidistant) sondern bilden eine Frequenzrampe. Die ist mindestens 
dreieck- bzw. trapezförmig oder sogar sin/cos förmig. Nur so kann man 
der Tendenz der Schrittverluste auf Grund der Massenträgheit des 
Rotors/zu bewegenden Systems entgegenwirken. Ein Schrittmotor ohne Rampe 
ist schlicht und ergreifend falsch impelmentiert. Das kann man nur 
machen, wenn man den Schrittmotor überdimensioniert. z.B. 
www.atmel.com/images/doc8017.pdf oder 
http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=slyt482&fileType=pdf

von spess53 (Gast)


Lesenswert?

Hi

>Ein Schrittmotor ohne Rampe
>ist schlicht und ergreifend falsch impelmentiert.

Unsinn. Innerhalb der Start-/Stopfrequenz braucht man kein Rampe.

MfG Spess

von Stepper (Gast)


Lesenswert?

Was so alles an Unsinn in kürzester Zeit geschrieben wird ist schon 
bemerkenswert.
Ein schrittmotor ist ein Motor der definierte Schritte macht.
Ein schrittmotor darf nicht sofort mit der Höchstgeschwindigkeit 
getaktet werden.
Ein schrittmotor muss auf seine Geschwindigkeit beschleunigt werden.

von Axel S. (a-za-z0-9)


Lesenswert?

spess53 schrieb:
>>Ein Schrittmotor ohne Rampe
>>ist schlicht und ergreifend falsch impelmentiert.
>
> Unsinn. Innerhalb der Start-/Stopfrequenz braucht man kein Rampe.

Das ist ungefähr so sinnvoll, wie einen Ferrari nur im ersten Gang zu 
fahren. Wenn man einen Schrittmotor nicht mit einer Rampe beschleunigt, 
dann kann man auch nur vollkommen lächerliche Verfahrgeschwindigkeiten 
erreichen.

von Wolfgang (Gast)


Lesenswert?

Eigentlicht sollte doch die Geschichte mit den Rampen zur Begrenzung der 
Beschleunigungswerte inzwischen hinreichend bekannt sein.
Die Rampenberechnung findet man z.B. in der Atmel AppNote AVR446 - 
Linear speed control of stepper motor
http://www.atmel.com/dyn/resources/prod_documents/doc8017.pdf

von Dussel (Gast)


Lesenswert?

Es kommt halt auf den Einsatzzweck an. Wenn man nur geringe 
Geschwindigkeiten braucht, vielleicht für eine Dosierpumpe (ob da ein 
Schrittmotor sinnvoll ist, ist eine andere Frage) oder sowas, braucht 
man keine Rampe.

von wolke (Gast)


Lesenswert?

Leute, die länger als ein Semester gebraucht haben um zu verstehen, was 
eine Rampe ist, können darauf nicht mehr verzichten und brauchen es auch 
nicht.

von spess53 (Gast)


Lesenswert?

Hi

>Das ist ungefähr so sinnvoll, wie einen Ferrari nur im ersten Gang zu
>fahren. Wenn man einen Schrittmotor nicht mit einer Rampe beschleunigt,
>dann kann man auch nur vollkommen lächerliche Verfahrgeschwindigkeiten
>erreichen.

Ob du das für sinnvoll hältst oder nicht ist deine Sache. Ändert aber 
nichts an der Tatsache, das eine Rampe nicht in jedem Fall 
erforderlich ist.

Zitat aus

http://www.microstep-motoren.de/index.php/de/glossar/47-d/drehmoment-frequenz-kennlinie

"Innerhalb des Startbereiches kann der Schrittmotor mit jeder beliebigen 
MLi - fSi - Kombination starten ohne eine Schritt zu verlieren."

MfG Spess

von Dussel (Gast)


Lesenswert?

Axel Schwenke schrieb:
> Das ist ungefähr so sinnvoll, wie einen Ferrari nur im ersten Gang zu
> fahren.
Um den Vergleich mal anzupassen: Das ist ungefähr so sinnvoll, wie ein 
Fahrzeug mit 500PS nur mit 50 fahren zu lassen. Für einen Ferrari mag 
das sinnlos sein, für eine Pistenraupe wäre es aber genauso sinnlos, 
diese auf 300km/h auszulegen.

von Flo N. (dave001)


Lesenswert?

Um den Thread zu beenden und die eigentliche Frage zu beantworten "Wie 
kann man einen Schrittmotor schrittweise ansteuern".

In meinem Fall steuere ich den Schrittmotor (200 Schritte a 1,8 Grad) 
über einen uC. Mein Fehler war, dass alle Jumper gesetzt waren und ich 
deshalb in einer Schleife (<200) keine volle Umdrehung zusammengebracht 
habe. Jumper richtig setzen um einen voll Schritt und keinen halb, 
viertel,.. zu erzeugen.

von Dussel (Gast)


Lesenswert?

Flo Norbert schrieb:
> Mein Fehler war, dass alle Jumper gesetzt waren
Gut, das kann hier ja niemand wissen. Schrittmotoren haben mit Jumpern 
nichts zu tun.
Trotzdem schön, dass es funktioniert.

von Mike (Gast)


Lesenswert?

Flo Norbert schrieb:
> Um den Thread zu beenden und die eigentliche Frage zu beantworten "Wie
> kann man einen Schrittmotor schrittweise ansteuern".

Falls der Motor sich schon gedreht hat, als du den Thread eröffnet hast, 
bist du wohl mit der falschen Erwartungshaltung an das Ergebnis 
rangetreten und hast die falsche Frage gestellt. Wie soll dann hier 
jemand ahnen, welche Steuerung du besitzt, welche Jumper die besitzt und 
was du am Manual nicht verstanden hast (wenn du es dann überhaupt 
gelesen hast). So gesehen hat m.n. deine Frage schon gleich so 
vollständig, wie es auf Grund der Informationslage möglich war, 
beantwortet und alles andere war Nebelstocherei.

von Flo N. (dave001)


Lesenswert?

Ja absolut, also ich hätte mich vorher genauer einlesen müssen und bin 
durch Zufall auf dieses Ergebnis gestoßen, trotzdem an alle vielen Dank! 
Die "Nebelstocherei" tut mir leid, aber zumindest habe ich dazulernen 
können weil ich von anfahren mit Rampen überhaupt nicht gedacht habe und 
das gut als theoretischen Hintergrund für die Semesterarbeit einbauen 
kann.
Bin noch sehr neu auf diesem Gebiet und danke für eure Hilfe !

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
Noch kein Account? Hier anmelden.