Hallo allerseits. Für ein Projekt benötige ich einen Schrittmotortreiber, welcher sich idealerweise mit dem Raspberry Pi kombinieren lässt (evtl. auch i2c). Das Problem hierbei ist, es müsste einer sein, welcher einfach eine Anzahl an Voll bzw. Halbschritten ausführt. Das liegt einfach daran, das ich einen Schrittmotor mit einem Getriebe nutzen muss, welches eine Untersetzung von 900:1 ausgibt. (15V/150mA) Ich habe bereits mit dem AMIS 30624 erste Erfahrungen gemacht, der jedoch ein Positionscontroller ist und nicht in der Lage ist Schrittimpulse auszuführen. Also bin ich für jede Idee dankbar:)
Da ist erst mal die Frage, ist der Jitter eines Linux Userspace-Programmes ok? Du kannst natürlich jeden Treiber anschließen. (Na gut, sollte mit den 3,3V zurechtkommen). Hast dann aber die selben Probleme mit dem Jitter, wie die alten Parallelport-Treiber.
Ob der Jitter in Ordnung ist kann ich dir nicht genauer sagen... aber mit Timing Problemen muss je nach Bibliothek gerechnet werden. Dennoch wäre es kein Problem einen µC als I2C Slave umzustellen und die Pulse über ihn zu schicken.
Cav P. schrieb: > Das liegt einfach daran, das ich einen Schrittmotor mit einem Getriebe > nutzen muss, welches eine Untersetzung von 900:1 ausgibt. > (15V/150mA) Dein Getriebe gibt eine Untersetzung aus und arbeitet mit 15 V / 150 mA? Hat Dir denn in Deinem anderen Beitrag noch keiner gesagt gehabt, daß ein aktueller Schrittmotortreiber nicht mit Gurkenmotoren klarkommt - oder besser umgekehrt? Besorg Dir einen passenden Motor, dann klappt das auch mit der Ansteuerung.
> einen µC als I2C Slave
Genau so etwas machen die meisten Teilnehmer dieses Forums.
Ein Raspi, ein 3,3V Mikrocontroller und diese Treiber mit Dir- und
Step-Eingang sind schnell zusammengebaut.
Das Programm wird aber erstaunlich umfangreich. Wenn dein Stepper nicht
nur ganz langsam laufen soll, brauchst du wie der AMIS
Start-Stop-Rampen.
Im Prinzip musst du alles was der AMIS Chip macht nach programmieren,
nur statt diesem bescheuerten Position-Range 32Bit/64Bit Zahlen nehmen.
m.n. schrieb: > Cav P. schrieb: > Das liegt einfach daran, das ich einen Schrittmotor mit einem Getriebe > nutzen muss, welches eine Untersetzung von 900:1 ausgibt. > (15V/150mA) > > Dein Getriebe gibt eine Untersetzung aus und arbeitet mit 15 V / 150 mA? > Hat Dir denn in Deinem anderen Beitrag noch keiner gesagt gehabt, daß > ein aktueller Schrittmotortreiber nicht mit Gurkenmotoren klarkommt - > oder besser umgekehrt? > > Besorg Dir einen passenden Motor, dann klappt das auch mit der > Ansteuerung. Dir Idee hatte ich auch schon bereits. Jedoch ist der Motor vorgegeben. Noch einer schrieb: > einen µC als I2C Slave > > Genau so etwas machen die meisten Teilnehmer dieses Forums. > Ein Raspi, ein 3,3V Mikrocontroller und diese Treiber mit Dir- und > Step-Eingang sind schnell zusammengebaut. > > Das Programm wird aber erstaunlich umfangreich. Wenn dein Stepper nicht > nur ganz langsam laufen soll, brauchst du wie der AMIS > Start-Stop-Rampen. > > Im Prinzip musst du alles was der AMIS Chip macht nach programmieren, > nur statt diesem bescheuerten Position-Range 32Bit/64Bit Zahlen nehmen. Mit dem Amis läuft der Motor erstaunlich schnell. Mit dem a3964 nur halb so schnell bzw auch unruhiger. Ich frage mich auch, warum ich beim Amis wenn ich die Positionen bis zum Ende anfahren (welche ja 2048 vollschritte) betragen, am ende nicht dort stehen bleibt wo ich möchte. Ich mache zum Beispiel eine anfahrt auf Position 4095 von Position null aus. Das sollten in etwa 34,13° sein. Nach jeder vollen Fahrt führe ich auch ein resetposition () durch. Nach 5 vollfahrten und ca. 9.3335°(560 Schritte) sollte ich mich auf der Position 180° befinden. Jedoch Schiesst dieser immer über das Ziel hinaus. Ich kann es mir einfach nicht erklaren. Sorry für die Rechtschreibung, heute antworte ich ausnahmsweise vom Handy aus.
Bekommst du jedes mal die gleiche Abweichung? Schrittmotoren sind recht zickig. Kommt auch vor, dass unbelastete Motoren bei einem elektrischen Schritt mehrere mechanische Schritte machen. Würde auch erst mal versuchen, ob deine Strategie mit den mehreren setposition und resetposition gut genug ist. Alle anderen Ideen ergeben hundertfachen Aufwand.
Schon mal die Treiber von Trinamic angeschaut?
Hallo, wenn du über i2c einen Treiberbaustein ansteuerst, kannst du die Schritte vom Programm in einer Schleife ansteuern. Wichtig ist erstmal, wieviel Schritte /s machst du maximal? Wie sind die Anfahrtsrampen definiert? Untersetzung 900:1 wie genau ist das Getriebe? So hohe Untersetzungen kenne ich nur von astronomischen Nachführungen. So wie du es beschreibst, ist eher ein intelligenter Controller sinnvoll, der dann über CAN oder RS 485 angesteuert wird. Dort kann man Fahrprogramme hinterlegen. Wenn der Strangstrom bei 150mA ist , brauchst du eine gute Stromregelung, sonst Verglüht der Motor schneller als du 'Ups' sagen kannst. Viele grüße Bernd
Hallo, also es scheint so, als würde es mit dem AMIS 30624 nun doch klappen, habe jetzt die Shaft Funktion eingeschaltet und die Acceleration sowie Vmax und Vmin etwas heruntergeschraubt. Nicht zu vergessen, sind die Äquivalenten-Steps während Start und Stop Phase bzw. Rampen An- und Abfahrt. Mache es mit einer Schleife und ResetPosition. Habe noch Counter in der Software implementiert, welcher mir dann die genaueren Positionen angibt. Zum Motor, es ist ein Faulhaber 1524-V-6-35 und ein Faulhaber Stirnradgetriebe AM15/8 mit einer 900:1 Untersetzung. Diese hohe Untersetzung wurde zur Fehlerminimierung der Messgenauigkeit gewählt.
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.