Schrittmotor rampen

Gast #1608790
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!
Moderator (Firma: Titel) Persönliche Seite #1608828
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?
Gast #1608833
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. :)
Gast #1609064
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.
Gast #1609076
Nochwas: Rampen werden typisch mit gleichbleibender Beschleunigung 
gefahren. Um das auszurechnen, braucht es etwas Mathematik. In C aber 
recht einfach umsetzbar.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.