Forum: Mikrocontroller und Digitale Elektronik Schrittmotor rampen


von Ivan (Gast)


Lesenswert?

hallo, versuche gerade einen schrittmotor zu beschleunigen, habe keine 
ahnung ob das richtig ist, wie ich es mache.
algorithmus siet bei mir so aus:

schleife
1 schritt
pause
2 schritt
pause
3 schritt
pause
4 schritt
pause
goto scleife

in den nicht dargestellten schleifen verringere ich die pausen langsam 
und komme auf die frequenz ca. 1khz (also pause mit 1ms) zwischen den 
schritten. ich möchte gerne 2-5 khz haben, ist das generell möglich? 
habe keine doku zu dem motor. ich habe etwas über rampen von 
schrittmotoren gelesen, aber kein algorithmus gefunden wie man es 
richtig macht, kann jemand helfen? danke!

von Flo (Gast)


Lesenswert?

Probieren? Wirste schon merken wenn der Motor bei hohen Frequenzen 
Schritte überspringt...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ivan schrieb:
> schleife
> 1 schritt
> pause
> 2 schritt
> pause
> 3 schritt
> pause
> 4 schritt
> pause
> goto scleife
Das Problem bei dieser Vorgehensweise ist, dass der Schritt von 4 nach 1 
wegen des goto länger braucht als die Schritte dazwischen.

Aus diesem Grund wird für sowas üblicherweise ein Timer eingesetzt, der 
definierte Zeitabstände erzeugen kann.

> komme auf die frequenz ca. 1khz (also pause mit 1ms)
> ich möchte gerne 2-5 khz haben, ist das generell möglich?
Ja, aber evtl. nicht mit dieser Programmiersprache/Compiler.
Welche/n verwendest du denn eigentlich?

von Huber (Gast)


Lesenswert?

Um eine konstante Beschleunigung zu erzeugen, solltest Du dir einmal 
folgende Links ansehen:

http://www.embedded.com/columns/technicalinsights/56800129?_requestid=56271
http://www.atmel.com/dyn/resources/prod_documents/doc8017.pdf

Wenn Du jedesmal einen Konstanten Wert von deiner Pause abziehst, 
beschleunigst du am Anfang arschlahm und am Ende viel zu schnell.

Ansonsten solltest Du, insofern dein SM-Treiber das ermöglicht, einmal 
die verschiedene Einstellungen durchprobieren: fast Decay an/aus, Anzahl 
der Mikroschritte erhöhen, verringern. :)

von Ivan (Gast)


Lesenswert?

also ich programmiere in c mit cc5x

von Florian F. (vollbio)


Lesenswert?


von Ivan (Gast)


Lesenswert?

danke für die antworten, ich dachte dass es einfacher geht, muss nach 
einem algorithmus suchen, wie man das ganze umsetzen darf

von Winfried (Gast)


Lesenswert?

Wenn du den Motor mal bis zu einer bestimmten Frequenz hochfährst und 
dort dann mal belastest, merkst du ganz schnell, ob da noch Reserven 
sind oder ob der kurz vorm Limit ist. Dort nämlich reichen kleinste 
Kräfte und die Motordrehung reißt ab. Hat er hingegen noch gut 
Drehmoment, kannst du auch noch höher mit der Frequenz gehen.

von Winfried (Gast)


Lesenswert?

Nochwas: Rampen werden typisch mit gleichbleibender Beschleunigung 
gefahren. Um das auszurechnen, braucht es etwas Mathematik. In C aber 
recht einfach umsetzbar.

von Ivan (Gast)


Lesenswert?

hast du da ein paar vorschläge wie es gehen kann
danke

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.