Forum: Mikrocontroller und Digitale Elektronik Schrittmotor Rampengenerierung


von Daniel P. (peini7)


Lesenswert?

Hallo miteinander.

Ich bin sicher es gibt schon hunderte dieser Fragen, jedoch hab ich noch 
nichts wirklich gutes gefunden.

Also ich möchte für eine selbstgebaute Schrittmotorsteuerung eine 
Rampengenerierung machen. Kennst hier jemand wirlich gute AppNotes oder 
Internetseiten?

Problem ist, dass für die Beschleunigung und für die Verzögerung 
unterschiedliche Werte verwendet werden sollen. Hab mal was mit 2 Timern 
gelesen, jedoch hab ich aber nix passendes dazu gefunden.

Später soll dann auch eine S-förmige Rampe implementiert werden. Dazu 
finde ich allerdings noch weniger.

Programmiert wird für einen PIC32MX575F512H in mikroCPro for PIC32.

Vielen Dank schonmal für eure Antworten.

@edit: Noch was vergessen: Schrittmotortreiber ist ein TMC261. Dieser 
wird per Step/DIR Interface angesteurt.

von Düsendieb (Gast)


Lesenswert?

Was hast Du denn bisher fertig?

Werden schon Impulse für eine Konstante Geschwindigkeit von Deinem 
Programm ausgegeben?

Wenn JA, wie werden denn diese Pulse gemacht?

von Pieter (Gast)


Lesenswert?

moin moin,

-welche Drehzahl soll in welcher Zeit erreicht werden?

>>Später soll dann auch eine S-förmige Rampe implementiert werden

warum nicht gleich?
S-förmig, wäre sin^2 nicht besser, ist auch nicht einfacher zu 
berechnen.
Unterschiedliche Anfahr und Bremsrampen sind kein Problem, nur warum?

MfG
Pieter

von Daniel P. (peini7)


Lesenswert?

Vielen Dank für die schnellen Antworten.

Meine Impulse werden mit einem 16 bit Timer erzeugt. Hab auch schon 
nachgedacht einen 32 bit Timer zu verwenden. Wär das besser, wegen der 
höheren Auflösung?

Also die Schaltung ist für einen RemoteHead, an dem ich gerade baue. Das 
Problem ist, dass ein möglichst großer Geschwindigkeitsbereich abgedeckt 
werden soll.

"warum nicht gleich?
S-förmig, wäre sin^2 nicht besser, ist auch nicht einfacher zu
berechnen."

ich wolle mit einer linearen Rampe beginnen, da diese sicher leichter zu 
implementieren ist und ich mich in dieser Thematik (im Moment) noch 
nicht allzu gut auskenne.

@Pieter: Unterschiedliche Beschleunigung und Verzögerung brauche ich 
deswegen, weil ich wie schon gesagt einen RemoteHead baue und dieser 
soll automatisch eine Zielposition anfahren. Und bei Filmaufnahmen 
möchte man nicht immer, dass die Rampen gleich sind.

Ich sag dazu auch noch, dass es sich um langsame Rampen handelt, wegen 
den Filmaufnahmen.

Mein größtes Problem ist halt, dass ich nicht genau weiß, wie ich die 
Berechnungen anstellen soll. Da hoffe ich halt, dass mir vielleicht 
jemand weiterhelfen kann.

von Kein Name (Gast)


Lesenswert?

Ist dir Grbl schon aufgefallen? https://github.com/grbl/grbl

Aus dem recht übersichtlichen Quelltext kannst du 2 Teile nehmen. Einen 
Planner, der unterschiedliche Segmente optimal zusammensetzt. Und eine 
ISR, die mittels Bresenham die Stepper ansteuert.

Leider nur lineare Beschleunigung. Mit Pic32 sollten sich nach dieser 
Strategie auch aufwändigere Beschleunigungen berechnen lassen.

von Daniel P. (peini7)


Lesenswert?

Danke. Werd ich mir gleich anschauen.

von g457 (Gast)


Lesenswert?

> AppNotes

AVR446

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.