Forum: Mikrocontroller und Digitale Elektronik 48 Schrittmotoren mit Arduino steuern


von Chris M. (xystus)


Lesenswert?

Hallo ihr alle ! Ich bin neu hier und auch neu auf Gebiet der 
Microkontroller.
Ich möchte eine Idee realisieren bei der es nötig ist, 48 kleine 
Schrittmotoren einzeln anzusteuern.

Mit dem Arduino Mega 2560 kann ich ja auf 54 digitale in/outs 
zurückgreifen.
durch meine bisherigen Recherchen, habe ich herausgefunden ein

ULN2003 4. dieser digitalen ports belegt pro Motor
und der
Easy Driver 2.

somit kann ich zurzeit nur maximal 27 Schrittmotoren verwenden.

kann mir jemand da weiterhelfen :)

vielen dank !

von Falk B. (falk)


Lesenswert?

Du brauchst eine Porterweiterung mit Schieberegistern.

AVR-Tutorial: Schieberegister

von Mike (Gast)


Lesenswert?

Chris Müller schrieb:
> kann mir jemand da weiterhelfen :)

48/27 = 1,778

Wenn du alle Motoren gleichzeitig steuern möchtest, brauchst du also 
mehr als einen ATmega2560. Die nächste Ganzzahl wäre 2. Also sollte es 
von der Pin-Zahl mit zwei Stück gehen.
Um an einem µC 27 Motoren koordiniert zu betreiben, mußt du dann etwas 
genauer überlegen, wie du die Ansteuerung der Einzelschritte zeitlich 
organisierst.

von Markus (Gast)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Bei einer solchen Anzahl arbeitet man eher mit verteilter Intelligenz. 
Da bekommt jede motorisierte Einheit wie zB X/Y-Tisch oder ein Greifarm 
oder eine Tür mit Verriegelung einen eigenen Mikrocontroller, der 
Befehle wie "Position X/Y anfahren" eigenständig ausführen kann. Alle 
Controller sind über einen seriellen Bus wie CAN oder RS485 mit einer 
Zentrale verbunden, die alles koordiniert.

Es gibt auch intelligente Schrittmotorcontroller wie den Trinamic 
TMC223, die das meiste unabhängig vom Microcontroller erledigen können. 
Der TMC223 wird per I2C angesteuert, maximal 16 dieser ICs können an 
einem I2C hängen, und für mehr brauchst Du einen I2C Switch wie zB 
PCA9547.

http://www.trinamic.com/products/integrated-circuits/integrated-motion-controller-stepper-driver/tmc223

http://www.nxp.com/products/interface_and_connectivity/i2c/i2c_multiplexers_switches/series/PCA9547.html

fchk

von Chris M. (xystus)


Lesenswert?

Hallo erstmal danke für die vielen und schnellen antworten !!

ich habe mir überlegt den easy driver zu verwenden und die "pinDir" von 
allen Motoren auf einen zulegen (da diese sich alle immer in die gleiche 
Richtung drehen) und dann nur per pinStep die Motoren einzel 
anzusteuern.

geht das ? (dann würde ich ja nur 49 Ausgänge benötigen)


das ganze möchte ich als Bastelei verwirklichen und daher auch möglichst 
sparsam sein. (die "easy driver" kosten ja so 2 Euro/stück und die 
Motoren die ich verwenden möchte 1 Euro.was ja schon 144 Euro sind) es 
wird keine wirkliche Leistung benötigt.

LG

von Sebastian S. (sebastian_s50)


Lesenswert?

Je nach Art der Ansteuerung benötigst Du für 48 Schrittmotore 96 
Steueranschlüsse.

Also wenigstens: Richtung + Schritt.

Und das auch nur, wenn Du fertige Steuer-ICs verwendest.

Willst Du die Schalttransistoren selber ansteuern, so braucht’s leicht 
das Doppelte.

Sollen diese auch noch völlig unabhängig voneinander agieren, so könnte 
es auch an anderer Stelle mit den Ressourcen eng werden.

von ich (Gast)


Lesenswert?

Sebastian S. schrieb:
> Je nach Art der Ansteuerung benötigst Du für 48 Schrittmotore 96
> Steueranschlüsse.
>
> Also wenigstens: Richtung + Schritt.
>
> Und das auch nur, wenn Du fertige Steuer-ICs verwendest.
>
> Willst Du die Schalttransistoren selber ansteuern, so braucht’s leicht
> das Doppelte.
>
> Sollen diese auch noch völlig unabhängig voneinander agieren, so könnte
> es auch an anderer Stelle mit den Ressourcen eng werden.

Hallo Sebastian,

Chris schrieb doch, daß er die easy driver verwenden möchte und die 
Direction-Pins von allen parallel schalten will.

Chris Müller schrieb:
> ich habe mir überlegt den easy driver zu verwenden und die "pinDir" von
> allen Motoren auf einen zulegen (da diese sich alle immer in die gleiche
> Richtung drehen) und dann nur per pinStep die Motoren einzel
> anzusteuern.

Also hat er doch recht mit insgesamt 49 Anschlüssen, oder?

von Sebastian S. (sebastian_s50)


Lesenswert?

@Ich
Ich kenne leider niemanden mit Namen "Easy Driver".
Wenn aber alle in die gleiche Richtung drehen, so kann er den für die 
Richtung nötigen Pin auch noch verkaufen.

von Chris M. (xystus)


Lesenswert?

Sebastian S. schrieb:
> @Ich
> Ich kenne leider niemanden mit Namen "Easy Driver".
> Wenn aber alle in die gleiche Richtung drehen, so kann er den für die
> Richtung nötigen Pin auch noch verkaufen.

danke an "ich" und an sebastian !

dann würde ich das wohl mal so versuchen :)

@sebastian ich meinte diese hier http://www.schmalzhaus.com/EasyDriver/

wenn du günstigere kennst die mit 2 pin bzw. jetzt 1 nem auskommen geb 
bescheid !

ich kenne sonnst noch die ganz billigen die bei ebay verkauft werden 
ULN2003 ~1euro aber die brauchen 4 pins sowie ich das verstehe...

lg

von Max H. (hartl192)


Lesenswert?

Chris Müller schrieb:
> ULN2003 ~1euro aber die brauchen 4 pins sowie ich das verstehe...
Ich würde für 2 Schrittmotoren einen ULN2803 als Treiber und einen 
74HC595 als Porterweiterung mit SPI verwenden.

von ich (Gast)


Lesenswert?

Sebastian S. schrieb:
> @Ich
> Ich kenne leider niemanden mit Namen "Easy Driver".

Ich kenne auch niemanden, der so heißt. Aber es gibt einen 
Schrittmotor-Treiber mit diesem Namen:
http://www.schmalzhaus.com/EasyDriver/index.html

> Wenn aber alle in die gleiche Richtung drehen, so kann er den für die
> Richtung nötigen Pin auch noch verkaufen.

Es kann ja sein, daß er die Richtung ändern will, und das für alle 
gemeinsam. Ich kenne sein Projekt auch nicht.

@Chris:
Du schreibst:
>die "easy driver" kosten ja so 2 Euro/stück

Für den Preis habe ich nirgends welche gesehen. Wo bekommst du die her?
Der billigste, den ich gefunden habe, war bei ca. 7€. Und bei Watterott 
sind es immerhin 11,90€. Oder hast du nur ein Angebot für die Platine 
(unbestückt) gesehen? Würde mich mal interessieren, ok?

von Mike (Gast)


Lesenswert?

Chris Müller schrieb:
> die "easy driver" kosten ja so 2 Euro/stück

sicher?

von Chris M. (xystus)


Lesenswert?

ja genau die ändern nur alle zusammen die richtung aber eigentlich 
reicht es sogar wenn sie das nie tun.

@sebastian da ich ggf. 48 stück benötige wäre ich auch bereit diese in 
china zu bestellen -> 
http://www.ebay.de/itm/NEU-EasyDriver-Schild-Stepping-Stepper-Motor-Driver-V44-A3967-fur-Arduino-T5-/331126454053?pt=Motoren_Getriebe&hash=item4d18acb725

für einen rentiert sich das wahrscheinlich nicht .


mfg !

von NickNack (Gast)


Lesenswert?

So wie ich das sehe kosten die im ebay-Angebot "ca. 4€" das Stück...es 
scheint keine Sparversand-Option zu geben;)

von MaWin (Gast)


Lesenswert?

Chris Müller schrieb:
> Ich möchte eine Idee realisieren bei der es nötig ist, 48 kleine
> Schrittmotoren einzeln anzusteuern.

Ohne klare Angaben wie viel Strom bei welcher Spannung welche Art 
(unipolsr, bipolar) die Motoren brauchen und inwieweit sie gleichzeitig 
drehen müssen  kann es keine Antwort für die sinnvollste Lösung geben.

von ich (Gast)


Angehängte Dateien:

Lesenswert?

NickNack schrieb:
> So wie ich das sehe kosten die im ebay-Angebot "ca. 4€" das
> Stück...es scheint keine Sparversand-Option zu geben;)

Stimmt, hast recht, ca. 4€ (siehe Bild)  :-)

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Plus Versandkosten, Einfuhrumstatzsteuer und Zoll sind es dann ungefähr 
4 EUR, was immer noch unschlagbar billig ist.

Mit freundlichen Grüßen
Thorsten Ostermann

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hier sieht man übrigens schön, dass diese Art von Boards bzw. Shields 
nicht für die hohen Ströme geeignet sind, die die Datenblätter der Chips 
versprechen. Weil die Platinen einfach zu klein sind, um die 
Verlustleistung abzuführen.
http://www.schmalzhaus.com/EasyDriver/index.html#Q14

Der A3967 schafft bei optimalem Layout 750mA/Phase. Das EasyDriver Board 
erreicht schon bei 475mA Phasenstrom 100°C am Treiber. Und das ist außen 
mit einem IR-Thermometer gemessen, wärend die Platine offen auf dem 
Tisch lag. Die Die-Temperatur dürfte noch etwas höher liegen. Wenn man 
das Ganze in ein Gehäuse einbaut sind die Bedingungen noch deutlich 
schlechter.

Mit freundlichen Grüßen
Thorsten Ostermann

: Bearbeitet durch User
von Chris M. (xystus)


Lesenswert?

Hallo erstmal wieder danke für das große interesse hier!

ich versuche mein projekt etwas genauer zu beschreiben, das auch 
gezielter geantwortet werden kann :)

also es is ein künstlerisches projekt in dem die motoren nur ein stück 
pape/plastik bewegen müssen. und alle zusammen so muster 
erzeugen/darstellen.

dazu recht es (theoretisch) das sich alle nur in eine richtung drehen 
können.
ebenso rechen die aller kleinsten und billigsten schrittmotoren, da ja 
keine leistung benötigt wird und nicht soviele positionen
http://www.ebay.de/itm/5V-Stepper-Motor-Schrittmotor-ULN2003-Fahrer-Brett-5-Line-4-Phase-HP-/161114423267?pt=Motoren_Getriebe&hash=item25832affe3

dieser hat 64 positionen was reicht und noch ein billiges steuergerät.

meine frage ist jetzt an die profis ist es generell sinvoller das ich

A. die motoren jeweils mit einem "easy driver" betreibe und nur die 
position einzell steure (dann würde mir der "mega" reichen

B. ich mit Schieberegister arbeite und dann die "billigen" 4pol 
controller verwende die bei dem link oben dabei sind.

-> noch zum projekt, da die motoren als art anzeige funktionieren werden 
immer alle "gleichzeitig" bewegt (dabei kommt es jetzt nicht darauf an 
das sie zum 100% gleich laufen, aber schon relativ. ist daher ein 
schieberegister (oder mehrere) besser da die ja dann mit Register Clock 
alle motoren parallel ansteuern ?



und zu dem china import ja ihr habt natürlich recht mit den 2 euro ! 
aber wenn ich 48 bestelle werde ich vorher mit dem verkäufer schreiben 
und auch mit zoll werden es dann kaum mehr als 3 euro pro teil sein 
denke ich :)

lg

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>-> noch zum projekt, da die motoren als art anzeige funktionieren werden
>immer alle "gleichzeitig" bewegt (dabei kommt es jetzt nicht darauf an
>das sie zum 100% gleich laufen, aber schon relativ.

Wozu braucht man da 48 Motoren? Da reicht einer.

MfG Spess

von Chris M. (xystus)


Lesenswert?

spess53 schrieb:
> Hi
>
>>-> noch zum projekt, da die motoren als art anzeige funktionieren werden
>>immer alle "gleichzeitig" bewegt (dabei kommt es jetzt nicht darauf an
>>das sie zum 100% gleich laufen, aber schon relativ.
>
> Wozu braucht man da 48 Motoren? Da reicht einer.
>
> MfG Spess

Hallo spess53

ich habe geschrieben GLEICHZEITIG und nicht GLEICH damit wollte ich 
sagen, das die motoren immer alle zur selben zeit sich in eine neue 
position bewegen sollen ABER jeder motor in eine andere.
dadurch ergibt sich ja dann das gewünschte muster :)

sry das ich mich da vllt. etwas ungenau ausgedrückt habe !

lg

von oldmax (Gast)


Lesenswert?

Hi
Was spricht gegen ULN 2003 und einen kleinen Controller, der die Aufgabe 
des Treibeers für den Schrittmotor (die Schrittmotorgruppe) übernimmt. 
Hast du eine serielle Kopplung, kannst du praktisch die Kontroller in 
reihe schalten  und mit einer Art "Telegramm" die Antriebe einzeln 
ansteuern. So hast du alle Möglichkeiten und liegst du auf jeden Fall 
unter den 4 €. Dein Arduino sendet an jeden Antrieb deinen Befehl mit 
Motornummer, Richtung und Schrittzahl. So kompliziert ist das nicht und 
so wie ich dein Projekt verstehe, spielt die Größe keine besondere 
Rolle. Damit hast du auch alle Optionen.
Gruß oldmax

von Chris M. (xystus)


Lesenswert?

oldmax schrieb:
> Hi
> Was spricht gegen ULN 2003 und einen kleinen Controller, der die Aufgabe
> des Treibeers für den Schrittmotor (die Schrittmotorgruppe) übernimmt.
> Hast du eine serielle Kopplung, kannst du praktisch die Kontroller in
> reihe schalten  und mit einer Art "Telegramm" die Antriebe einzeln
> ansteuern. So hast du alle Möglichkeiten und liegst du auf jeden Fall
> unter den 4 €. Dein Arduino sendet an jeden Antrieb deinen Befehl mit
> Motornummer, Richtung und Schrittzahl. So kompliziert ist das nicht und
> so wie ich dein Projekt verstehe, spielt die Größe keine besondere
> Rolle. Damit hast du auch alle Optionen.
> Gruß oldmax

hey oldmax !

ja aber ein ULN kann doch immer nur einen Motor steuern oder? und der 
ULN wird doch vierpolig vom arduino angesteuert also reichen die 
Ausgänge nicht ?

von Uwe (Gast)


Lesenswert?

Und wie fährst du in die Nullposition ?
Wie selektierst du einen einzelnen Motor ?

Du brauchst mindestens ne Nullerkennung (oder nen mechanischen 
Anschlag).
Dann mußt du mit dem Enabel Siganl den zu bewegenden Motor Selektieren, 
dann gibst du entsprechen viele Impulse auf der Step Clock aus.
Also brauchst du mindestens 48 Selekt Signale und eine Step Clock.
49 Outputs.

von Klaus (Gast)


Lesenswert?

Chris Müller schrieb:
> ebenso rechen die aller kleinsten und billigsten schrittmotoren, da ja
> keine leistung benötigt wird und nicht soviele positionen
> Ebay-Artikel Nr. 161114423267

Das sind, wie man leicht sehen kann, unipolare Motore. Da sie nur 5 
Anschlußdrähte haben, können sie nicht bipolar angesteuert werden. Man 
braucht also entweder 4 Transistoren oder 1/2 ULN und 4 Ports

MfG Klaus

von m.n. (Gast)


Lesenswert?

Chris Müller schrieb:
> das ganze möchte ich als Bastelei verwirklichen und daher auch möglichst
> sparsam sein. (die "easy driver" kosten ja so 2 Euro/stück und die
> Motoren die ich verwenden möchte 1 Euro.was ja schon 144 Euro sind) es
> wird keine wirkliche Leistung benötigt.

Auf der einen Seite willst Du viel (48) zeigst Dich aber auf der anderen 
Seite etwas 'geizig'.
Wenn Alles zusammen funktionieren soll, dann baue die Kunst modular auf. 
Dabei bekommt jeder Motor einen µC (ATmega48, ATtiny2313 oder ATtiny841) 
und einen ULN2003. Die Steuerung erfolgt über die ser. Schnittstelle mit 
Multiprozessorprotokoll.

Dann baue das zunächst für 5-10 Motore auf und prüfe, ob es wie 
gewünscht funktioniert. Im 2. Schritt schlachtest Du Dein Sparschein und 
besorgst Dir die restlichen Teile.
Vom Materialpreis kommt ein Modul (ohne Platine) auch auf 2€. Im 
Gegensatz zu den Kaufteilen, die irgendetwas machen, kannst Du die 
Motore exakt so steuern, wie Du es brauchst.

Falls es nicht funktioniert, war die Investition gering; und wenn es wie 
erwartet läuft, weißt Du, wofür Du Geld ausgeben möchtest.

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
Noch kein Account? Hier anmelden.