INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
48 Schrittmotoren mit Arduino steuern
02.03.2014, 20:08
Beitrag #1
48 Schrittmotoren mit Arduino steuern
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 !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 20:36
Beitrag #2
RE: 48 Schrittmotoren mit Arduino steuern
Hi,
ich habe mir mal die Stepper.cpp scharf angesehen. Das müsste man so umschreiben können, dass es auch mit Schieberegistern geht. Z.B. 12 TPIC6B595 hintereinander geben Dir 96 Pins.
Ich gehe davon aus, dass das Reinschieben schnell genug geht.
(...oder wie schnell können zwei Steps theoretisch hintereinender kommen?)
Du brauchst dann nur 3 Pins.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 21:12
Beitrag #3
RE: 48 Schrittmotoren mit Arduino steuern
Hi Thorsten !

ich bin noch nicht soweit in der materie um deine frage sicher beantworten zu können..
also die 48 Motoren werden immer alle gleichzeitig angesteuert. (ich weis das kein echtes multithreading möglich ist, aber ich glaube da was gefunden zu haben).

mit anderen worten, ist es schon wichtig das die alle relativ schnell angesteuert werden können.

was meinst du mit drei pins? (pro motor?)

lg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2014, 23:11
Beitrag #4
RE: 48 Schrittmotoren mit Arduino steuern
(02.03.2014 21:12)Xystus schrieb:  also die 48 Motoren werden immer alle gleichzeitig angesteuert. (ich weis das kein echtes multithreading möglich ist, aber ich glaube da was gefunden zu haben).
Was genau meinst Du mit "gleichzeitig"?
Vielleicht ist sogar das mit dem Schieberegister genau was Du brauchst. Damit kannst Du wirklich alle gleichzeitig einen Step machen lassen. (Soweit ich das verstehe.) Mit dem Arduino einfach so geht das nicht.

Zitat:was meinst du mit drei pins? (pro motor?)
Nein, insgesamt. Siehe hier:
http://arduino.cc/en/tutorial/ShiftOut#.UxOrFIUwcv0
Ich würde nur statt 74HC595 den TPIC6B595 nehmen, da Dir sonst die Ausgänge wahrscheinlich schlapp machen.
Meine Idee ist die: Du schiebst im Prinzip alle 96 Bits nacheinander in die Schieberegister. Dann einmal "Register Clock" und alles geht gleichzeitig parallel raus.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.03.2014, 11:54
Beitrag #5
RE: 48 Schrittmotoren mit Arduino steuern
Hey Thorsten danke für die Antwort !

Das klingt alles sehr gut !

Ich versuche dir mal mein Projekt etwas genauer zu erklären damit du weist was ich meine. Es ist ein künstlerisches Projekt, bei dem die Motoren nur ein stück Papier/Plastik bewegen müssen und alle zusammen angesteuert werden und so Muster darstellen können sollen Wink
Daher reicht es auch, wenn diese sich nur in die eine oder andere Richtung zusammen drehen können.

Jetzt meine Frage an dich:

Soll ich so wie du geschrieben hast einfach Schieberegister verwenden (warsch. mehrere) und wenn ja kann ich da dann auch diese billigen Controller verwenden -> http://www.ebay.de/itm/5V-Stepper-Motor-...25832affe3

diese benötigen 4 Pins (soweit ich das richtig verstehe sind aber billiger als die "Easy Driver")

oder soll ich die "Easy Driver" Controller benutzen und nur die Position ansteuern d.h. das Mega mit seinen 56 Ausgängen würde mir reichen.

wie stark würde man merken das die ganzen Motoren nacheinander angesteuert werden ?

LG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.03.2014, 14:07
Beitrag #6
RE: 48 Schrittmotoren mit Arduino steuern
(03.03.2014 11:54)Xystus schrieb:  Es ist ein künstlerisches Projekt, bei dem die Motoren nur ein stück Papier/Plastik bewegen müssen und alle zusammen angesteuert werden und so Muster darstellen können sollen Wink
Interessant, da helfe ich gerne. ...aber nur, wenn ich am Ende ein Video davon bekomme Wink

Zitat: Soll ich so wie du geschrieben hast einfach Schieberegister verwenden (warsch. mehrere) und wenn ja kann ich da dann auch diese billigen Controller verwenden -> http://www.ebay.de/itm/5V-Stepper-Motor-...25832affe3
diese benötigen 4 Pins (soweit ich das richtig verstehe sind aber billiger als die "Easy Driver")
Tja, ich glaube, dass es da ziemlich viele Möglichkeiten gibt. Ich persönlich würde davon ausgehen, dass Du sowieso was zusammenlöten musst. Da kannst Du Dir ggf. auch die Treiber selbst basteln. Schau Dir z.B. das hier mal an:
http://arduino.cc/en/Reference/StepperUnipolarCircuit
Du kannst dann auch die einfacheren Schieberegister (74HC595) nehmen. Dann gäbe es auch noch die Möglichkeit, die ULN2003 direkt anzusteuern (also 4 Pins), dann brauchst Du halt doppelt so viele Schieberegister.

Zitat: oder soll ich die "Easy Driver" Controller benutzen und nur die Position ansteuern d.h. das Mega mit seinen 56 Ausgängen würde mir reichen.
Das verstehe ich jetzt nicht.

Zitat:Daher reicht es auch, wenn diese sich nur in die eine oder andere Richtung zusammen drehen können.
wie stark würde man merken das die ganzen Motoren nacheinander angesteuert werden ?
Ich habe da mal was an Deinem Text umgestellt...
Durch die Schieberegister würden sie sich absolut synchron drehen, da der jeweilige Step durch genau ein Signal ausgelöst wird. Tatsächlich werden die Motoren dadurch gar nicht nacheinander angesteuert.
Die Zeit von einem Step bis zum nächsten würde ich wahrscheinlich so im Bereich einer Millisekunde bewegen.
Ich glaube, dass der Unterschied zwischen der Sache mit den Schieberegistern und "direkt" nicht so groß ist. Du kannst ja auch die Pins nur nacheinender Steuern.

Ich würde an Deiner Stelle einfach mal zwei Motoren, ein Schieberegister und zwei ULN2003 hernehmen und damit experimentieren.

Softwareseitig würde ich das ungefähr so angehen:
Ich vermute mal, Du hast als Input (wo auch immer das herkommt) die Soll-Position aller Motoren. Außerdem musst Du irgendwo die Ist-Position gespeichert haben und jeweils die "Nummer" des letzten Steps. (Siehe auch https://arduino.googlecode.com/svn/trunk...tepper.cpp.)
In einer Routine, die alle paar Millisekunden aufgerufen wird (je nach gewünschter Geschwindigkeit) machst Du dann das:
1. Für jeden Motor: Berechne Anzahl Steps = Soll Position - Ist - Position
2. Verwerfe alle Ergebnisse, bei denen die Anzahl der Steps kleiner als das Maximum ist. (Falls das Maximum 0 ist: return.)
3. Für alle Motoren, die jetzt noch übrig sind: Berechne das "Muster" für den nächsten Step
4. Schiebe das komplette Bitmuster (für alle Motoren) in die Schieberegister, dann einmal "R-Clock".
5. Aktualisiere die Ist-Position für alle Motoren, die sich bewegt haben.

Ich stelle mir das so vor, dass sich zuerst die Motoren bewegen, die am weitesten von ihrer Soll-Position entfernt sind. Am Schluss bewegen sich alle gemeinsam.
Man könnte das auch leicht anders machen, indem man die Berechnung in 2 anders macht. Z.B. könnte man es so gestalten, dass die Step-Frequenz proportional zum Weg ist. Dann würde es so aussehen, als ob sich alle bewegen, nur manche eben schneller.
Da es ein Kunstprojekt ist wäre vielleict auch folgendes ganz nett: Wenn ein Motor weniger Weg zurückzulegen hat, dann bewegt er sich eben erstmal in die andere Richtung...

Dsa könnte mir echt auch Spaß machen, glaube ich.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.03.2014, 15:56
Beitrag #7
RE: 48 Schrittmotoren mit Arduino steuern
Hi,
ich habe gerade gesehen, dass es möglicherweise einen Unterschied macht, ob Du unipolare oder bipolare Schrittmotoren hast. Bei bipolaren wird es ein klein wenig komplizierter:
http://arduino.cc/en/Reference/StepperBipolarCircuit
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.03.2014, 17:50
Beitrag #8
RE: 48 Schrittmotoren mit Arduino steuern
Erstmal nochmal ein großes Dankeschön das du hier soviel Interesse für mein Projekt zeigst !
Ich denke du hast auch vollkommen recht mit dem "zwei Motoren kaufen und herumprobieren" denn ich habe von der Materie einfach noch sehr wenig Ahnung Smile das muss und wird sich ändern Smile
Ich schreibe dir sobald ich weiter bin !

Ich werde das so wie du geschrieben hast in Angriff nehmen und versuchen mit Schieberegistern zu arbeiten !

viele Grüße Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Android Smartphone über Bluetooth steuern StephanBuerger 0 79 25.11.2016 20:01
Letzter Beitrag: StephanBuerger
  Zwei Schrittmotoren mit Arduino steuern MarcusW 6 2.375 28.09.2015 21:05
Letzter Beitrag: Bitklopfer
  Sensor an Arduino über IP abfragen/steuern kubinek 5 2.615 03.08.2015 21:14
Letzter Beitrag: Haustechno
  Schritttmotor mit Endstufe HY-DIV268N-5A steuern Schrittmotor 5 2.169 28.07.2015 10:37
Letzter Beitrag: Scherheinz
  50+ Schrittmotoren steuern. ayu 18 4.901 25.06.2015 10:55
Letzter Beitrag: ayu
  LCD Anzeige für Arduino Mega2560 an Arduino Due? DaniDD 1 806 03.06.2015 12:16
Letzter Beitrag: DaniDD
  Arduino Pin mit anderem Arduino auslesen - geht das? Gelegenheitsbastler 8 3.214 08.05.2015 20:49
Letzter Beitrag: Bitklopfer
  Hilfe; Servos über schalter steuern??? Soempe 9 8.169 28.04.2015 09:49
Letzter Beitrag: badges
  LED stripes steuern roller64 2 1.154 21.04.2015 20:48
Letzter Beitrag: roller64
  Quadrocopter-Dronen autonom per Wifi steuern? HaWe 11 1.782 10.03.2015 16:11
Letzter Beitrag: HaWe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste