Hallo allerseits, ich steuere im Moment eine Schrittmotor mittels eines I2C Schrittmotorentreibers ( AMIS 30624 Datenblatt: http://www.onsemi.com/pub_link/Collateral/AMIS-30624-D.PDF ) an für ein etwas größeres Projekt. Der Motor hat einen Schrittwinkel von 15° und ist zusätzlich noch mit einem Getriebe versehen welches eine Untersetzung von 900 hat. Jetzt habe ich ein gaaaaanz großes Problem. Ich kann ohne weiteres diesen Motor keine volle Umdrehung fahren lassen, da mir wahrscheinlich die Untersetzung einen Strich durch die Rechnung macht. Wenn ich es richtig verstanden habe, kann ich mit dem Schrittmotor nur bestimmte Targets anfahren (S.17/18 Datenblatt). Wenn ich nun den Punkt 32767 anfahre dreht sich ein herkömmlicher Schrittmotor ohne Untersetzung zig male, der jetzige jedoch vielleicht nur ca. 20°. Any Ideas ? Habe ich evtl. etwas falsch verstanden im Datenblatt? Habe soweit alles durch. Ich dachte eher an eine Funktion, in der ich dem Treiber mitteilen kann das er z.B. 21600 Schritte für eine volle Umdrehung ausführen soll (21600 weil ->360/( 15° Schrittwinkel_Motor * Untersetzung ( 1/900 ) ) ) Bin über jeden Tipp dankbar.
Schau mal in Tabelle 11 des Datenblattes. Dort steht, daß der Treiber +/- 2048 Vollschritte machen kann.
Hallo, wahrscheinlich nicht sehr hilfreich, weil der Motor wohl zum Stehen gebracht werden muss.Das wäre zu testen. >ResetPosition >This command is provided to the circuit by the I 2 C master >to reset ActPos and TagPos registers to zero. This can be >helpful to prepare for instance a relative positioning. >ResetPosition corresponds to the following I 2 C command frame:
Christian B. schrieb: > Schau mal in Tabelle 11 des Datenblattes. Dort steht, daß der > Treiber > +/- 2048 Vollschritte machen kann. Ja bei einem Herkömmlichen Motor (Schrittwinkel 1,8°) würde mich das auf ca. 10.24 Umdrehungen bringen. Bei meinem Getriebemotor jedoch ca. 0.09 Umdrehungen also ca. 34.133 Grad pro volle Umdrehung. Zu Antwort 2: Im Moment führe ich eine for-Schleife aus, welche permanent eine SetPosition auf 32768 ausführt und nach dieser fahrt gleich die Position zurücksetzt also ResetPosition. So habe ich nach 16 Durchgängen eine volle Umdrehung ( nach Augenmaß )
Aber mit Präzision hat das dann nicht mehr viel zu tun oder? Leider kenne ich mich zu wenig damit aus, aber ich würde sagen: der Treiber ist für die Anwendung nicht geeignet. Evtl. gibt es einen geeigneteren? Auf jeden Fall gibt es Treiber die nur Takt und Richtungseingang haben und dann den Motor bewegen. Wenn du deine Steuerung entsprechend umprogrammieren kannst ist so etwas möglicherweise besser geeignet. (z.B.: A3987 von Allegro Mikrosystems)
:
Bearbeitet durch User
Ok werde mir mal diesen Treiber zulegen und schauen ob es funktioniert. Egal wie ich es drehe und wende ich komme einfach nicht auf ein richtiges Ergebnis mit dem AMIS 30624. Wenn ich eine 90° Drehung machen möchte, führe ich den Treiber im Half Step Mode aus. Das Positioning geht von -4096 <- 0 -> + 4095 (im Halbschrittmodus) Also wenn ich die Position 4095 von null aus anfahre müssten das bei meiner Übersetzung 34.13° drehung ergeben. Das mache ich zwei mal und nun sollten mir ca 21,7 ° übrig bleiben... Das wären ungefähr 2600 Halbschritte für den o.g. Motor Meiner Rechnung zufolge inkl. 3er Bitshift und SignedBit = 1 wäre das ein Datenwort von 0xD1 und 0x40 oder löse ich das Datenwort einfach falsch auf ?
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.