Hall Gemeinde Einen Schrittmotor laufen lassen geht ohne Problem. Auch mit unterschiedlicher Drehzahl oder links oder rechts geht alles. Doch wie kann ich eine definierte Anzahl von Schritten (Winkel) laufen lassen? Habe schon einige Beiträge im Forum dazu gefunden, leider nicht das richtige dabei. Oder gibt es eine Möglichkeit eine Rampe zu programmieren um einen Sanftanlauf zu bekommen? LG Klaus
Schau Dir mal das Datenblatt der Motorsteuerung an. Es gibt normalerweise unterschiedliche Modi. Dauerlauf: Da gibt man nur die Richtung vor. Schrittmodus, Positioniermodus, oder so ähnlich: Da gibst Du die Anzahl der Schritte und die Richtung vor. Die Rampe für die Beschleunigung ist meistens separat, da die ja für alle Modi gilt. Gruß Sebastian
Sebastian R. schrieb: > Schau Dir mal das Datenblatt der Motorsteuerung an. Es gibt > normalerweise unterschiedliche Modi. Und dann gibt es natürlich noch die "nackten" Endstufen, die nur Impuls- und Richtungseingänge haben...
Dachte mehr an eine Software mit der ich eine Rampenzeit einstellen kann. So wie T1 - Rampe hoch T2 - Laufzeit T3 - Rampe runter A1 Steilheit zu T1 A3 Steilheit zu T3 und nicht zu vergessen die Drehzahlregelung mit Poti über ein U-F Wandler. Habe schon mehrere Sachen im Forum dazu gesehen. Entweder ohne Code oder Beispiel oder alles sehr theoretisch. LG K
Genau diese Rampen (Beschleunigung und Geschwindigkeit; Laufzeit ergibt sich daraus) kannst Du über die Motorsteuerung einstellen. Wie kommunizierst Du denn mit dem Motor? Da hast Du doch bestimmt schon eine Software. Gruß Sebastian
Klaus schrieb: > Einen Schrittmotor laufen lassen geht ohne Problem. Auch mit > unterschiedlicher Drehzahl oder links oder rechts geht alles. Na das ist ja super. > Doch wie kann ich eine definierte Anzahl von Schritten (Winkel) laufen > lassen? Einfach mit der Ansteuerung zum passenden Zeitpunkt aufhören. > Habe schon einige Beiträge im Forum dazu gefunden, leider nicht das > richtige dabei. Schlimm. > Oder gibt es eine Möglichkeit eine Rampe zu programmieren um einen > Sanftanlauf zu bekommen? Natürlich. Gibt es auch eine Möglichkeit, daß du dir die Mühe gibst, hinzuschreiben, welche Plattform und welchen Motortreiber du verwendest ? Ansonsten bleibt nur die allgemeine Antwort daß es bei passend ausgewählten schon geht: https://www.airspayce.com/mikem/arduino/AccelStepper/ https://www.trinamic.com/technology/std-technologies/ramping/ https://github.com/plastiv/stepper-motor-controller/blob/master/%20stepper-motor-controller%20--username%20plastiv%40gmail.com/code/speed_cntr.h
Klaus schrieb: > Habe schon mehrere Sachen im Forum dazu gesehen. Entweder ohne Code oder > Beispiel oder alles sehr theoretisch. Ja, leider ist das manchmal so. Mit meinem DRV8825 bin ich auch noch nicht so richtig weiter. Der Motor läuft nach dem Ansteuern (manchmal) wieder zurück, ohne dass der uC ncoh Impulse liefert. Vielleicht hat der Chip eine Macke (oder ich). https://www.exp-tech.de/module/motorsteuerung/schrittmotoren/4802/drv8825-stepper-motor-driver-carrier-high-current
Klaus schrieb: > Oder gibt es eine Möglichkeit eine Rampe zu programmieren um einen > Sanftanlauf zu bekommen? Klar gibt es die. Anlaufen ist trivial, einfach die Geschwindigkeit schrittweise erhöhen bis die gewünschte erreicht ist. Bremsen geht umgekehrt, ausser wenn man einen bestimmten Endpunkt ansteuern will: dann muss man nämlich vorausberechnen, wann man mit dem Bremsen anfangen muss. Daher ist eine Punkt-zu-Punkt-Steuerung mit Rampen recht kompliziert (und ohne Rampen funktioniert es meistens garnicht, weil der Schrittmotor nur mit einer bestimmten Maximalfrequenz überhaupt loslaufen kann). Also am besten Hardware und Treiber verwenden, die das alles selber beherrschen. Georg
Na ich weiß nicht ob bei den Schwierigkeiten Marlin eine Erleuchtung bringt. Marlin ist schon sehr komplex. Es gibt da einfachere Module in der Arduino-Welt. Auch wenn Teacup sicher etwas einfacher zu Verstehen ist, würde ich da auch nicht als erstes drauf verlinken. Es gibt auch ein paar nette Papers [1] und/oder [2] dazu, wie man solche Rampen berechnen kann. Wenn man ein bischen rumsucht, findet man auch noch viele andere Ansätze. [1] http://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time [2] https://www.microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591185
Als Hardware verwende ich einen Atmega 128 und C. Der Treiber IC ist ein L6208 mit einem SM von 3,8V und 2,2A. Verwende CLOK, EN und CCW. Das Programm habe ich selber geschrieben. Beinhaltet eigentlich nur einen Timer und schalte die Zeiten um. Georg hat da zwei Sachen drin. Wie kann ich einen bestimmten Punkt ansteuern? z.B. bei 1,8° soll er 20 Schritte drehen. Das ist doch die Ausgabe einer definierten Anzahl von Impulsen mit einer bestimmtem Frequenz (ms oder Hz). Dazu vielleicht das Haltemoment. Da gibt es bestimmt noch mehr zu fragen
Klaus schrieb: > Doch wie kann ich eine definierte Anzahl von Schritten (Winkel) laufen > lassen? Öhm...zählen!?! Das ist doch das tolle an Steppern: Man muss nur zählen können. Beispiel ein Stepper der 200 Schritte/Umdrehung hat: 50 Vollschritte und der Motor dreht um 90°. Sind es dagegen nur 50 Viertelschritte dann dreht er grad mal um 90°/4. Und wieviele Schritte er macht...du machst es doch nicht etwa so, dass du dem Stepper permament Schritte schickst sondern nur soviele Schritte, wie er machen soll um sein Ziel zu erreichen...
Klaus schrieb: > Oder gibt es eine Möglichkeit eine Rampe zu programmieren um einen > Sanftanlauf zu bekommen? Normalerweise wirst du einen Schrittmotor, außer in einigen Minimalanwendungen, nie vernünftig ohne Rampen betreiben können. Keiner außer dir kennt deine Hardware. Wie eine Rampe gesteuert wird, hängt davon ab, was zwischen deinem Steuerrechner und dem Motor hängt. Wenn du direkt die Drehzahl steuern kannst, scheint da einige Eigenintelligenz drin zu stecken. Ohne die zu kennen, wird dir keiner deine Fragen beantworten können.
Klaus schrieb: > Entweder ohne Code oder > Beispiel oder alles sehr theoretisch. Vielleicht reicht Dir das: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp7 Die Rampen werden automatisch erzeugt. Weiter oben sind auch Schaltungen, die per Poti ein oder zwei Schrittmotore ansteuern. Die Filterung der Potiwerte für automatisch zu Rampen. Gezielte Fahrt zur Sollposition mit Rampen und frei einstellbarer Geschwindigkeit per Poti dürften sich in einigen Punkten widersprechen. Einzig eine max. Geschwindigkleit per Poti wäre eventuell sinnvoll.
Moin, >Verwende CLOK, EN und CCW. Das klingt doch so als wäre der Treiber geeignet. Hier habe ich einen Trinamic näher beschrieben. Funktioniert einwandfrei. Der Treiber macht ihn m.E. optimal für die Ansteuerung mit einem µC. Beitrag "Arduino: Schrittmotor+Treiber gesucht" EN = 1 bedeutet Treiber ein (Motor hat Haltekraft) DIR bedeutet Drehrichtung: 0=rechts, 1=links STEP = Schritt bzw. Microschritt Alles Andere (Strom, Haltekraft, Rampen, Verzögerungen usw.) läßt sich im Treiber programmieren mittels graphischer IDE. Wer sich den ganz großen Kick geben will, kann dem Motor auch Assembler-Steuerbefehle in Echtzeit schicken...
Ich kenne keine Hardware, die selbsstätig Rampen macht. Außer es ist etwas Programmierbares drin. Dann aber mußt Du den Ersteller desselben fragen. Ich wüßte auch nicht, wie man die AVR internen Timer auf selbsttätige Rampen bringen sollte. Wenn es sich um eine Geschwindigkeitsregelung (ohne Position) handelt, dann ist es noch einfacher. Da kann man in Software die Frequenzausgabe stückchenweise hinundher schieben. Soll zusätzlich noch die Position stimmen, geht das nur vollständig in Software: Zeit zum nächsten Impuls berechnen, Timer-Interrupt drauf setzen. Die oben genannte Marlin-Software macht das so, für 4 Schrittmotoren gleichzeitig, und dann noch nebenher-Aufgaben. Hochachtung davor, aber als Schulprojekt nicht unbedingt zu gebrauchen. Fange erstmal an, jeden Impuls einzeln zu berechnen und auszugeben. Parallelverarbeitung kommt dann im 2. Lehrjahr dran.
Hallo m.n. Habe deine Sachen schon öfters im Netz und auf deinen Seiten gesehen. Werde es mal ausprobieren und dir dazu antworten.
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.