Hallo ich will einen Schrittmotorsteuerung aufbauen, es geht mir jetzt nicht um die Endstufen sondern die Steuerung mit Takt, Richtung, Beschleunigungsrampen, lineare interpolation usw. Das will ich in ein MC intergieren und die Daten vo PC via RS232 einlesen. Hat da schon einer Erfahrungen damit gemacht für Hilfe und Ratschläge bin ich Dankbar. Gruß Waldemar
Ich habe mir gerade die Teile angeschafft und bin gerade auch am experimentieren damit, allerdings mit einem kleinen Schrittmotor (aus einem Diskettenlaufwerk glaub ich ...). Ich verwende den TCA 3727 ... Die Infos, die du suchst würden mich auch interessieren ... Grüße Steffen
Ich würde Dir zu eine Kombination aus L297/L298 raten. Das vereinfacht die Ansteuerung erheblich. Ich habe gerade eben auch noch einen Beitrag in einem anderen Forum geschrieben. Ließ mal den letzten Beitrag. http://www.Elektronik-Projekt.de/Forum/YaBB.cgi?site=&board=mechanik&action=display&num=908&start=15 Ich kann Dir auch ein paar PDF Files zukommen lassen, in denen das genauer beschrieben ist Gruß Markus http://www.elektronik-projekt.de/
Wie ich schon in dem erstem Thread angedeutet habe ich will mit einem MC die Endstufen ansteuern die oben beschriebene Kombinationaus L297/L298 habe ich schon gebaut in dreifacher Ausführung jetzt bin ich dabei der Soft und Hartware für den Ansteuerung der obigen zu basteln. Es soll eine Platinen Bohr und Fräse werden. Dafür brauche ich Routinen für Lineare Interpolation ( am besten Integer wegen Rechenleistung ) um von einer zur anderen Koordinate bei dem Tisch zu gelangen und um die Masse an den Spindeln auszutricksen Beschleunigungs und Bremsrampen bei Anfahren der Motore.
Hm, ich wüsste nicht, was das für einen Vorteil bringen sollte. Der Controller kann das auch nicht viel besser als der L297. Höchstens du willst das zu Übungszwecken machen oder sowas...
Für die einzelne Vektoren am xy Tisch denke ich könnte man die im Anhang dargestellte Routine verwenden Bresenham Algoritmus, nur wie soll man da mit den Brems und Beschl. Rampen vorgehen und dazwischen konstanter Schrittakt gruß Waldemar
Hallo Markus, Die Kombination aus L297/L298 ist ein Kpl. Leistungsteuerung für Schrittmotore mit PWM für Konstanten Strom und Phasenstrom regulation. Die aber von Aussen mit Takt Richtung Halb-/Vollschritt Signalen angesteuert werden muß und für diesen Zweck will ich einen Microkontroller verwenden um nicht mit Programmen wie PC-NC oder andere durch Parallelschnittstelle die ansteuern zu müssen. gruß Waldemar
Ahso, von einer Ansteuerung per Mikrocontroller bin ich sowieo ausgegangen. Die Funktion des L297 komplett auf einem µC nachzubilden sollte allerdings schwierig werden
Sag mal Markus, was ist mit dir auf einmal los? Waldemar hat eindeutig geschrieben das er den L297 sogar schon einsetzt. Gruß Bernhard
Nix. Im ersten Posting hat er ja noch nix davon geschrieben. Ich bin halt nur der Meinung, das es keinen Sinn macht, den L297 durch einen µC zu ersetzten, es sein denn Preis oder Platz spielen eine Rolle. Mit einem µC, zwei L297 und 2 L298 kann man eine schöne Schrittmotorsteuerung aufbauen und der µC hat noch genügend Reserven für andere Aufgaben. Ich will hier keinem was vorschreiben, nur vorschlagen. Ich teile nur meine Meinung mit. Was nicht heißt, das die immer richtig oder passend ist ;) Gruß Markus
Hallo, ich hab auch so ein Projekt angefangen und bin auch fast fertig damit. Ich hab eine Platine mit 3 TCA3727, einem 2313 und einem Max232 zur kommunikation. Die Hardware funktioniert, die Verbindung zwischen PC <-> MAX232 <-> UART funktioniert auch, nur die Software auf dem µC ist noch nicht ganz fertig. Bei Interesse kann ich gerne mehr infos geben! Phil
Hallo Phil, ich habe da 2 Fragen und zwar mit welcher Sprache programierst Du den kontroller und ob du bei dem Steuerung Rampen für hoch und Runterfahren der Motoren benutzen wirst. Ich habe da bei den Rampen doch meine Probleme. Für Hilfe werde ich Dankbar. Waldemar
@Phil: An genaueren Info´s oder dem Quellcode hab ich auch Interesse! Hänge nämlich auch gerad vor zwei TCA´s... Und die laufen noch nicht grummel. MfG Torsten
Hallo Torsten und Waldemar, Ich Programmier ohne Rampen, meine Steuerund sieht nur set-mode vor, kein accelerate, d.h. die Dinger fahren ziemlich aprupt an. ich hab grad leider kaum Zeit, werd euch aber bald näheres schicken! Phil
Hallo Waldemar Warum nicht PC-NC od. DinCNC über Parallelport ? Hab mir mal die Mühe gemacht und so ne Linearinterpolation u. Kreisinterpolation in QB (Dos) und VB (WIN98) zu programmieren und über Parallelport auszugeben. Das geht auch , aber ist ziemlich viel Rechnerei mit Winkelfunktionen drinn. Rampen hab ich vorerst gar nicht verwendet. Das ganze auf einem MC laufen zu lassen wird sehr sehr zeitkritisch . Den Weg den ich nun gehe: Servomotoren anstatt Schrittmotoren ! (hab dadurch immer Positionsrückmeldung wegen Encoder, keine Schrittverluste) Servomotorprogramm läuft auf einem AT90S2313. Steuerprogramm: DinCNC (Takt u. Richtung) bzw. Eigen-programm (VB) für 4-Achs- Interpolation Gruss Gerhard
Falls jemand doch einmal eine Steuerung mit Rampen programmieren möchte, ein Vorschlag für notwendige Routinen, für die ein AVR bestens geeignet ist. Die notwendigen Variablen sollten im Modulkopf als static deklariert sein: 1. Interruptroutine: 1.1 Ausgabe des neuen Bitmusters für den Stepper 1.2 Soll-Istposition vergleichen 1.3 Interrupt abschalten, wenn Sollposition erreicht: fertig Motorstrom (zeitverzögert) reduzieren!!! 1.4 andernfalls testen, ob Start- oder Stopprampe notwendig ist und Nachladewert (z.B. T1-compare) für nächsten Timerinterrupt berechnen und ins Register schreiben. 1.5 neues Bitmuster (abhängig von der Drehrichtung) ermitteln und für nächsten Interruptaufruf zwischenspeichern. 2. Initialisierung init_stepper(start_frequenz, lauf_frequenz, rampenschritte); Die Frequenzen müssen in Zeiten (Timerintervalle) umgerechnet werden; die Differenz der Intervalle wird durch die Rampenschritte dividiert und als Intervalländerung für die Interruptroutine gebraucht. Init von Timer, Port, +++ 3. Test, ob Stepper aktiv uchar stepper_aktiv(); 1= Timerinterrupt ist aktiv 4. Sollposition vorgeben schreibe_sollpostion(long sollwert); Timerinterrupt temporär abschalten! Neue Position global (static) ablegen; Timerinterrupt aktivieren, wenn abgeschaltet. Vorsicht bei Änderung der Drehrichtung: zuerst mit Rampe stoppen - dann Motor neu starten !!! 5. Istposition abfragen long lese_istposition(); Timerinterrupt temporär abschalten! Zum Vergleich, ob Ziel erreicht. Der Aufwand ist nicht gering, wenn es aber funktioniert, hat man eine schöne Routine. Typische init-Werte sind (500,2500,100) für kleine Schrittmotore an einem L6219. In jedem Fall sollte Halbschrittbetrieb gewählt werden. Es kann hier nicht jedes Detail benannt werden, totzdem viel Erfolg !
Noch ein später Nachtrag: Es gibt ein neues Treiber-IC: L6208 von ST. Ich glaube 24 Pins im DIP, SO und Powerxxx-Gehäuse. Beinhaltet einen L297 und zwei L6203, wenn ich mich recht erinnere. Optimal! Wenig Verdrahtung, weil fast alles drin. Ohne Kühlblech 2,5 A Dauerstrom und über 3 A kurzzeit. 8 - 50 V Vcc. Was will man da noch sagen? Datenblatt bei www.st.com erhältlich, einfach im Suchen-Fenster L6208 eingeben, schon bekommt man Application-Notes etc. Grüße von Profi
Wie wär's denn mit TRINAMIC. www.trinamic.de TMC428 3-Achsen-Controller Rampen, Positionieren, Referenzen suchen etc. TMC236 1-Achsen Teiber Soweit ich weiß läßt Trinamic seine Chips von Atmel produzieren. Die laufen auch prima mit den ATMegas. Reiner
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.