Hallo! Ich bastle gerade an einer Zeitraffer-Kameraführung mit einem Schrittmotor. Gesteuert soll das ganze über einen Mega32 und einem TMC222 Schrittmotor Controller werden. Soweit habe ich den TMC222 denke ich schon verstanden. Einzig mit der Referenzfahrt habe ich noch so meine Problemchen. Mein Ziel ist es eine Referenzfahrt über eine "längere" Strecke durchzuführen, bis jetzt bleibt mir der TMC222 aber nach ~32000 Schritten stehen. Da meine Linearführung aber länger als 32000 Schritte ist, ist das nun ein wenig "dumm". Meine einzige Idee wäre jetzt eine Art Move->Stop->ResetPosition->Move-Stop->ResetPosition Sodaß man auch irgendwann am Referenzpunkt ankommt. Meine Frage ist nun, gibt es eine elegantere Lösung zu meinem Problem oder muss ich das wohl so hinnehmen? Vielen Dank im Voraus! Hannes
Hannes Rosdfjkshj schrieb: > Meine Frage ist nun, gibt es eine elegantere Lösung zu meinem Problem > oder muss ich das wohl so hinnehmen? Das musst du wohl so hin nehmen, da der TMC222 ja nur ein Positionsregister über 16Bit hat. Und als ich mit dem TMC222 rumexperimentiert habe, hat das mit der Referenzfahrt irgendwie sowiso nicht hin gehauen. Gruß Steffen
Du gibst eine SetPos for , und dann während der Fahrt noch eine, usw .. Die aktuelle Pos kannst du ja auch immer abfragen.
Chris schrieb: > Du gibst eine SetPos for , und dann während der Fahrt noch eine, usw .. > Die aktuelle Pos kannst du ja auch immer abfragen. Das frisst er leider nicht so, weil da müsste ich die Position wären dem Fahren auf Null setzen und dann den neuen Zielpunkt angeben, was der Controller aber auch nicht mag :-/ LG
Bei mir ist es problemlos gegangen. Ich habe dir die AN dafür rausgesucht: 1. Read ActPos using GetActualPos (TMC222: GetFullStatus2) command 2. Set lower 16 bits of [ActPos+32767] as the next target position using SetPosition command For real continuous motion this sequence has to be repeated before the current target position has been reached. Weiterhin gibt es noch einen Trick mit RunInit . Dieser setzt ActPos auf null und dann soll es Jedenfalls stoppt der Controller nicht wenn man ihn eine neue Position mit SetPosition gibt, immer während der motion. Weiters: How to change velocity during emulated velocity mode? Set AccShape=1. This prevents acceleration from Vmin to Vmax, velocity is at Vmin level all the time. As Vmin is determined by both the Vmax index and the Vmin index much more different velocities can be chosen from compared to only changing at Vmax level. To avoid negative effects which can be caused by switching Vmin or Vmax group during a motion (see effects of changing Vmax…) the target position should always be far ahead of the actual position. This can be ensured by applying the velocity mode emulation command sequence (see velocity mode) as often as possible. In between of the velocity mode emulation commands Vmin index and Vmax index can be switched to generate the desired velocity profile. Please note: Set Acc=15 when simultaneously switching to another Vmax group and Vmin index to avoid out-of-range intermediate velocities. When staying in the same Vmax group, lower Acc values can be used to generate smoother velocity transitions. Background: AccShape=1, the Acc parameter is effective for velocity changes resulting from Vmin changes during a running motion.
Perfekt! Vielen vielen Dank für den Tipp! Genau so funktioniert es jetzt! LG
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.