Schrittmotor: Step Typ per Code ändern

Ich hab einen Big Easy Driver gekauft und meinen Schrittmotor angeschlossen. Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist. Habe also die entsprechenden Anschlüsse(M1,M2,M3) verkabelt und somit auf ganze Schritte umgestellt. Jetzt will ich das ganze aber nicht fest verkabelt haben, sondern über den Arduino steuern. Wie genau funktioniert das? Such ich mir 3 Pins aus(analoge nehm ich an ???), die ich dann mit M1/M2/M3 verbinde und setze die entsprechenden Pins dann auf 0 um die Steps zu vergrößern?

Würde mich freuen, wenn jemand helfen kann! Danke

hitower: Ich hab einen Big Easy Driver gekauft und meinen Schrittmotor angeschlossen. Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist. Habe also die entsprechenden Anschlüsse(M1,M2,M3) verkabelt und somit auf ganze Schritte umgestellt. Jetzt will ich das ganze aber nicht fest verkabelt haben, sondern über den Arduino steuern. Wie genau funktioniert das? Such ich mir 3 Pins aus(analoge nehm ich an ???), die ich dann mit M1/M2/M3 verbinde und setze die entsprechenden Pins dann auf 0 um die Steps zu vergrößern?

Würde mich freuen, wenn jemand helfen kann! Danke

Wie kommst Du auf analoge? Abgesehen davon, dass ein Arduino überhaupt keine analogen Ausgänge hat: einfach drei x-beliebige Pins nehmen und dann je nach Schrittwunsch auf HIGH oder LOW setzen. Vorher natürlich mit pinMode(pinnummer, OUTPUT) als Ausgang festlegen.

Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist.

Was meinst Du mit zu wenig? Ich sehe keine Vorteil die Schrittmodi umzuschalten. Beim 1/16 Microstepping mußt Du nur 16 mal mehr Schritte machen (im Vergleich zu Vollschritten) .

Grüße Uwe

MaFu: Wie kommst Du auf analoge?

Ich hab angenommen, dass das Signal auf einem digitalen Output moduliert wird. In anderen Bereichen wird oft nach bestimmter Zeit High geschickt um die Synchronisation nicht zu verlieren.

MaFu: Abgesehen davon, dass ein Arduino überhaupt keine analogen Ausgänge hat

Hm ich dachte schon? Mein Board hat eine Beschriftung "Analog" und es gibt eine AnalogWrite funktion?

uwefed:

Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist.

Was meinst Du mit zu wenig? Ich sehe keine Vorteil die Schrittmodi umzuschalten. Beim 1/16 Microstepping mußt Du nur 16 mal mehr Schritte machen (im Vergleich zu Vollschritten) .

Hab schon herumprobiert und festgestellt, dass er sich viel langsamer dreht(verwende diese AccellStepper library). Max geschwindigkeit und beschleunigung hab ich natürlich angepasst. Hab außerdem gelesen, dass der dann weniger Kraft hat.

Danke euch beiden!

hitower:

MaFu: Wie kommst Du auf analoge?

Ich hab angenommen, dass das Signal auf einem digitalen Output moduliert wird. In anderen Bereichen wird oft nach bestimmter Zeit High geschickt um die Synchronisation nicht zu verlieren.

M1/M2/M3 sind nur eine Bitcodierung für den Controller, also einfach digital auf HIGH/LOW setzen.

MaFu: Abgesehen davon, dass ein Arduino überhaupt keine analogen Ausgänge hat

Hm ich dachte schon? Mein Board hat eine Beschriftung "Analog" und es gibt eine AnalogWrite funktion?

Das sind PWM-Ausgänge, hat nichts mit Analog zu tun.

uwefed:

Per Default macht der nur 1/16tel Schritte, was für meine Zwecke viel zu wenig ist.

Was meinst Du mit zu wenig? Ich sehe keine Vorteil die Schrittmodi umzuschalten. Beim 1/16 Microstepping mußt Du nur 16 mal mehr Schritte machen (im Vergleich zu Vollschritten) .

Hab schon herumprobiert und festgestellt, dass er sich viel langsamer dreht(verwende diese AccellStepper library). Max geschwindigkeit und beschleunigung hab ich natürlich angepasst. Hab außerdem gelesen, dass der dann weniger Kraft hat.

Da sollte eigentlich kein Unterschied sein. Zudem läuft ein Schrittmotor wesentlich "runder", wenn es möglichst viele Microschritte macht. Was Du aber beachten musst: Für Microschritte muss der Motor mit einer mindestens drei bis viermal höheren Spannung als angegeben betrieben werden.

Hab schon herumprobiert und festgestellt, dass er sich viel langsamer dreht(verwende diese AccellStepper library). Max geschwindigkeit und beschleunigung hab ich natürlich angepasst. Hab außerdem gelesen, dass der dann weniger Kraft hat.

Eigentlich bringen Microschritte nur Vorteile. Er läuft runder und das max Drehmoment bei gleicher Drehgeschwindigkeit ist auch gleich. Du mußt ihn mit einer höheren Frequenz ansteuern.

Da Microschritte nur im Stromsteuermodus funktionieen mußt Du sicherstellen daß der Motor mit seine Induktivität nicht den Strom begrenzt. Du brauchst eine Versorgungsspannung von mindestenz 4 mal der Nannspannung.

Grüße Uwe

Ok, dann probier ichs noch mal mit den Mikroschritten.

Nachdem ich alle digitalen Pins schon belegt habe(schrittmotoren+ethernet shield): ist es trotzdem möglich die mit Analog beschrifteten Pins zu verwenden? oder brauch ich dafür einen zweiten Arduino/einen mit mehr pins?

Nachdem ich alle digitalen Pins schon belegt habe(schrittmotoren+ethernet shield): ist es trotzdem möglich die mit Analog beschrifteten Pins zu verwenden? oder brauch ich dafür einen zweiten Arduino/einen mit mehr pins?

Das verstehe ich nicht. Das Ethernetshield braucht 5 Pins , Der Motortreiber 2 Pins. Wo sind die anderen geblieben?
Ja, Du kannst die Analogen Pins als digitale benutzen. A0 wird 14, A1 wird 15 ecc.

Grüße Uwe

ethernet shield, 2 big easy driver, 1 enable pin

ethernet shield, 2 big easy driver, 1 enable pin

Das sind immernoch nur 8 von 20 Pins. Uwe

Wie du oben geschrieben hast: Ethernet: 5, Big Easy driver: je 2(=4), 1 Enable Pin

Sind schon mal 10 von 20 Pins, von denen 14 Digital sind. Dann noch je 3 um den Schrittyp festzulegen, womit ich auf 16 von 14 digitalen Anschlüssen wäre-->die analogen werden auch benötigt.

Hat sich aber eh erledigt, hab mir für die Beleuchtung einen Arduino Mega zum multiplexen bestellt, da sind dann noch mal um einiges mehr an Pins dabei.

Aber Wiese willst du den Schrifttyp einstellen? 16 microschritte sind 1 vollschritt...