Anfänger möchte drei Stepper mit Joysticks steuern

Hallo allerseits,

ich entwickle zurzeit eine dreiachsige Positioniervorrichtung, die im Aufbau sehr dem 3D-Drucker "ultimaker" ähnelt. Für jede Achse soll ein Schrittmotor verwendet werden. Für die Z-Achse ist ein Drehmoment von 1 Nm erforderlich, für die X-und Y-Achse wohl weniger als 0,5 Nm.

Zunächst einmal sollen die drei Achsen über Joysticks linear verfahrbar sein. Pro Achse sollen dann noch jeweils 2 Endstops hinzukommen. Evtl. sollen später noch einfache automatisierte Programmabläufe (auf der X-Achse hin und her fahren) möglich sein.

Ich bin leider ein absoluter Anfänger was Mikrocontroller angeht..

Ich gehe davon aus, dass ich aufgrund der vielen notwendigen Anschlüsse einen Arduino Mega verwenden sollte. Könnt ihr mir kompatible Endstufen und vielleicht auch Schrittmotoren empfehlen? Und hat vielleicht jemand einen sketch an dem ich mich orientieren könnte?

Grüße

Marc

steezy:
… Ich gehe davon aus, dass ich aufgrund der vielen notwendigen Anschlüsse einen Arduino Mega verwenden sollte. …

Ich habe jetzt nicht mitgezählt, aber Du kannst die Ansteuerung der drei Schrittmotoren mit sechs Leitungen erledigen (mit einem L297 pro Stepper). Von den 14 digitalen Ein-/Ausgängen eines Nanos würden dann noch 8 für andere Dinge zur Verfügung stehen. Reicht das nicht?

Gruß

Gregor

Danke für die Antwort! :slight_smile:

Ok stimmt, dann wären 6 davon für die Endstops belegt und noch 2 frei. Da das Ganze später aber evtl noch erweitert werden soll, ist es wahrscheinlich doch besser noch etwas Platz zu haben.

Ich habe jetzt diesen Aufbau gefunden, der meinem Vorhaben schon recht nah kommt https://brainy-bits.com/tutorials/stepper-motor-with-joystick-and-limit-switches/

Dabei wird der easy driver verwendet EasyDriver - Stepper Motor Driver - ROB-12779 - SparkFun Electronics
Dieser kann allerdings nur maximal 0,7 A liefern. Im Anhang habe ich einen Schrittmotor gefunden, der nur 0,71 A benötigt (was dann wohl immer noch zu wenig wäre) und mehr als 1 Nm Drehmoment leisten kann. Dieser Motor in Kombination mit dem easy driver wäre dann wahrscheinlich nicht geeignet?

Gibt es denn fertige Treiber auf Basis des L297, oder muss ich mich da zwangsläufig mit Schaltplänen auseinandersetzen und das Teil selber zusammensetzen? :confused:

steezy:
Gibt es denn fertige Treiber auf Basis des L297, oder muss ich mich da zwangsläufig mit Schaltplänen auseinandersetzen und das Teil selber zusammensetzen? :confused:

Nimmst du den L298n, dann findest du Unmengen fertiger Module.

Ok da findet man echt einige! :)

Für den Anschluss am Arduino werden dann allerdings 4 Eingänge benötigt, oder? Zumindest sind hier 4 belegt: http://fritzing.org/media/fritzing-repo/projects/s/stepper-motor-for-arduino/images/l298n-stepper-arduino_bb.png

steezy: ... Ok stimmt, dann wären 6 davon für die Endstops belegt und noch 2 frei. ...

Evtl. kannst Du die 6 Leitungen für die Endstops durch logische Verknüpfungen auf 3 reduzieren. Du könntest z. B. die beiden Endstops für eine Achse parallel schalten. Wenn Du weißt, in welche Richtung sich eine Achse bzw. das, was darauf ist, bewegt, kannst Du folgern, welcher der beiden Schalter betätigt wird. Ich hoffe, das war verständlich.

steezy: ... Da das Ganze später aber evtl noch erweitert werden soll, ist es wahrscheinlich doch besser noch etwas Platz zu haben. ...

Wenn Du die benötigten Leitungen reduzierst (z. B. durch logische Folgerungen wie oben), hast Du vermutlich auch mit einem Nano oder Uno noch genug Reserve.

HTH

Gregor

Der L298N alleine braucht vier I/Os. Erst zusammen mit dem L297 reduziert sich das auf zwei. Hier im Forum wurde der L298N als veraltet - weil bipolar=mehr Wärme - bezeichnet. Die von Dir verlinkten Motoren würden nicht passen, da für Spannungssteuerung mehr Spannung benötigt wird.

Der Easydriver wird mittels STEP und DIR angesteuert, das entspricht eher dem DRV8825 oder dem A4988. Diese Module machen eine Stromsteuerung, wobei die Versorgungsspannung des Moduls über der Nennspannung des Motors liegen muß. Deine Motoren haben knapp 4 V, da passen dann 12 V Versotgungsspannung. Das Modul möchte mehr als 8,6 V.

Nicht so mein Fall sind CNC-Shields wie dies oder dies oder ohne Arduino, weil man da mit den I/Os sehr festgelegt ist.

gregorss: Ich habe jetzt nicht mitgezählt, aber Du kannst die Ansteuerung der drei Schrittmotoren mit sechs Leitungen erledigen (mit einem L297 pro Stepper). Von den 14 digitalen Ein-/Ausgängen eines Nanos würden dann noch 8 für andere Dinge zur Verfügung stehen. Reicht das nicht?

Gruß

Gregor

Da stimmt einiges nicht. Der L297 ist kein Schrittmotortreiber sondern ein Ansteuerungschip für 2 H-Brücken wie zB den L298. Beide zusammen können als Stromtreiber funktionieren.

Der NANO hat 20 digitale Ein/Ausgänge wovon 6 auch analoge Eingänge sein können. Zusätzlich sin noch 2 analoge Eingänge.

Es ist unmöglich einen Schrittmotortreiber vorzuschlagen ohne die Datebn des Schrittmotors zu kennen.

Grüße Uwe

uwefed: Da stimmt einiges nicht. ...

Du hast recht. Der L297 ist ohne L298 tatsächlich nicht besonders nützlich. Was die 20 digitalen Ein-/Ausgänge angeht: Ich habe halt nur das gezählt, was mit „D“ anfängt.

Gruß

Gregor

Hallo Uwe, er möchte einen Mega verwenden und hat in #2 ein Datenblatt seines Wunschmotors, zumindest einer Gruppe Motoren, reingestellt. Das sind alles ungefär 4 V Motoren. Nach meinem Verständnis also eher Stromsteuerung als Spannungssteuerung, daher DRV8825. Bitte korrigiere mich, wenn ich daneben liege :)

Ihr seid super, danke für die Antworten! :slight_smile:

Also bisher habe ich noch keine Motoren, dieser Motor ist mir nur ins Auge gefallen, da das angegebene Drehmoment recht groß ist und der Strom gering. Ich wusste bisher aber auch noch nicht, dass zwischen Strom- und Spannungssteuerung unterschieden wird. Stromsteuerung scheint wohl üblicher zu sein und ist wahrscheinlich für mich einfacher zu realisieren.

Wie kann ich anhand der Motordaten erkennen, welche Spannung erforderlich ist, bzw. ob der Motor für Stromsteuerung geeignet ist? Im Anhang habe ich das Datenblatt zu dem genannten Motor angefügt. 4V konnte ich dort aber nicht finden.

Wichtig ist bei meiner Motorwahl, dass die Wellen, die durch die Motoren angetrieben werden, auch per Hand mit Kurbeln verstellt werden können. Ansonsten ist wie gesagt ein Drehmoment von 1 Nm erforderlich, wobei die Drehzahl relativ egal ist, also 60 Umdrehungen/min reichen zur Not auch.
Könntet ihr mir dazu vllt einen Motor empfehlen, der dann z.B. zum DRV8825 passt?
Und ist dieses Modul gegen rückfließende Ströme geschützt, wenn man den Motor manuell dreht? In der Beschreibung vom DRV8825 ist von over-current shutdown und beim A4988 von crossover current protection die Rede…

steezy: Wie kann ich anhand der Motordaten erkennen, welche Spannung erforderlich ist, bzw. ob der Motor für Stromsteuerung geeignet ist? Im Anhang habe ich das Datenblatt zu dem genannten Motor angefügt. 4V konnte ich dort aber nicht finden.

Es grüßt das Ohmsche Gesetz: 0,71 A * 6,2 Ohm = 4,4 V (ST5918S1008-A)

Da bist Du mit einer Versorgungsspannung 12 - 24 V gut bedient.

steezy: Könntet ihr mir dazu vllt einen Motor empfehlen, der dann z.B. zum DRV8825 passt?

Uwe hat mal was geschrieben, danach würde ich mit dem dicken Daumen sagen: Wenn die dreifache Motornennspannung die maximale Versorgungsspannung des Moduls nicht übersteigt, sollte es funktionieren.

Zu den Fragen, zu denen ich nichts weiß, schreibe ich nichts. ;D