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:> 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
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.