10 DC Motoren und 4 Lampen steuern

Hallo,

ich würde gerne 10 DC Motoren und 4 Lampen steuern/programmieren.

Das gewünschte Set-Up:
Die Motoren hängen an der Decke (ca. 5m hoch) und haben 3 Bewegungsmöglichkeiten: vorwärts/rückwärts/aus. Es sind 12V DC-Motoren.
Die Lampen stehen am Boden und laufen auch auf 12 V. Sie haben die Möglichkeiten: an /aus.
Das sind LED-Taschenlampen, die statt mit Batterien betrieben, an ein 12 V Netzteil angeschlossen werden.

Das ganze ist für eine Lichtkunst-Ausstellung gedacht und soll mehrere Wochen laufen. Die Stromversorgung wird über 12V-Netzteil und Zeitschaltuhren geregelt.

Die Motoren sollen dabei mal vorwärts, mal rückwärts laufen oder einfach auch mal stehen bleiben. Analog dazu die Lampen mit on/off. Dimmung bzw. Rotationsspeed brauche ich nicht zu variieren.
Insgesamt möchte ich einmal einen "Loop" programmieren, der dann immer wieder abgespielt wird.

Nun ist meine Frage dazu:
Kann ich das mit einem Arduino machen? Wenn ja, mit welchem?
Reicht der Arduino oder benötigt man dazu noch weitere Geräte? Bei zweiterem, welche?

Eine überlegung war noch, zwei Arduinos zu benutzen, einen zum Steuern der Motoren an der Decke, und den zweiten für die Lampen am Boden, um Kabel einzusparen. Ist das sinnvoll?

LG und schonmal Danke im Voraus,
Nane

Du brauchst auf alle Fälle Stellglieder für die Lampen / Motoren (Relais oder Logiklevelmosfets) und H-Brücken für die Richtungsumkehr der Motoren.
Das kann der Arduino nicht treiben.

Gruß Tommy

nougatnn:
Insgesamt möchte ich einmal einen "Loop" programmieren, der dann immer wieder abgespielt wird.

Kannst Du C++ programmieren?

nougatnn:
Kann ich das mit einem Arduino machen? Wenn ja, mit welchem?

Ja, das geht. Es gibt sehr viele Möglichkeiten, mein Tipp ist ein Mega2560.

nougatnn:
Reicht der Arduino oder benötigt man dazu noch weitere Geräte? Bei zweiterem, welche?

Ein Motor und eine Lampe benötigen nicht nur eine Spannung, sondern es fließt auch Strom, wie viel?

nougatnn:
Eine überlegung war noch, zwei Arduinos zu benutzen, einen zum Steuern der Motoren an der Decke, und den zweiten für die Lampen am Boden, um Kabel einzusparen. Ist das sinnvoll?

Auf jeden Fall ja, lange Kabel sind immer störend. Benötigst Du eine Koordinierung zwischen unten und oben?

agmue:
Kannst Du C++ programmieren?

Ja, C++ funktioniert. Habe damit schon einiges programmiert.

agmue:
Ja, das geht. Es gibt sehr viele Möglichkeiten, mein Tipp ist ein Mega2560.

Super, danke! Damit kann ich schonmal was anfangen und weiter recherchieren :slight_smile:

agmue:
Ein Motor und eine Lampe benötigen nicht nur eine Spannung, sondern es fließt auch Strom, wie viel?

Einer der Motoren hat etwa 4 W Leistung ... Wenn ich jetzt nicht falsch liege, braucht er dann 1/3 A (?)
Bei den Lampen bin ich nicht ganz sicher, habe 2 Varianten, die einen haben eine LED mit 30W und die anderen haben weniger Leistung (vlt 20W?)
Also max. 30W pro Lampe.

agmue:
Auf jeden Fall ja, lange Kabel sind immer störend. Benötigst Du eine Koordinierung zwischen unten und oben?

Nein, eine Koordinierung ist nicht notwendig.

(deleted)

nougatnn:
Ja, C++ funktioniert. Habe damit schon einiges programmiert.

Ein Kunstprojekt mit OOP, das wäre echt mal was Neues!

nougatnn:
Einer der Motoren hat etwa 4 W Leistung …

Dann eventuell L9110 Dual-DC Motor-Treiber Board.

nougatnn:
Also max. 30W pro Lampe.

Dafür ein Logic Level MosFET wie IRLZ34 oder IRLZ44.

nougatnn:
Nein, eine Koordinierung ist nicht notwendig.

Dann ist kein Funk notwendig.

Also die Lampen und Motoren müssen nicht miteinander kommunizieren müssen.
Die Performance, die ich reinprogrammiere soll aber schon aufeinander abgestimmt werden, allerdings sind da ein paar Sekunden unterschied kein problem, das alles läuft sehr langsam ab.
Aber Zufallsfunktionen werde ich eher nicht einbauen.

agmue:
Dann eventuell L9110 Dual-DC Motor-Treiber Board.

Heißt das, ich bräuchte den Mega2560 und 5 von den Treiber Boards, damit ich alle 10 Motoren einzeln ansteuern könnte?
In meiner Vorstellung können auch 2 oder 3 Motoren mit dem gleichen Programm ablaufen, das würde evtl ein paar Treiber Boards sparen, oder denke ich hier jetzt verkehrt?

agmue:
Dafür ein Logic Level MosFET wie IRLZ34 oder IRLZ44.

Was genau macht dieses MosFET? Ist das notwendig, weil da soviel Leistung gezogen wird?
Dazu bräuchte ich ja dann auch wieder einen Arduino oder?

LG
Nane

nougatnn:
Heißt das, ich bräuchte den Mega2560 und 5 von den Treiber Boards, damit ich alle 10 Motoren einzeln ansteuern könnte?
In meiner Vorstellung können auch 2 oder 3 Motoren mit dem gleichen Programm ablaufen, das würde evtl ein paar Treiber Boards sparen, oder denke ich hier jetzt verkehrt?

Da denkst du richtig. Braucht man dann eben stärkere Treiber, die mehr als einen Motor schaffen. Kein Problem.

nougatnn:
Was genau macht dieses MosFET? Ist das notwendig, weil da soviel Leistung gezogen wird?
Dazu bräuchte ich ja dann auch wieder einen Arduino oder?

Der Mosfet ist nur ein Verstärker des Signales, das aus dem Arduino kommt. Also ein Teiber oder Schalter, weil der Arduino natürlich die 30 Watt der LED nicht direkt steuern kann. Du hast also einen Arduino für die LED´s. Die er über die Mosfet´s steuert. Und einen Arduino, der die Motor-Treiber-Brücken steuert.

Ich habe das so verstanden, dass es keine Endstellungen gibt, sondern nur (frei) drehen in beide Richtungen und aus.

Gruß Tommy

Da hatte ich jetzt Verständnisprobleme, bis ich mir gedacht habe du → tue könnte passen.
Richtig geraten?

Gruß Tommy

Franz54:
Da denkst du richtig. Braucht man dann eben stärkere Treiber, die mehr als einen Motor schaffen. Kein Problem.

Der Mosfet ist nur ein Verstärker des Signales, das aus dem Arduino kommt. Also ein Teiber oder Schalter, weil der Arduino natürlich die 30 Watt der LED nicht direkt steuern kann. Du hast also einen Arduino für die LED´s. Die er über die Mosfet´s steuert. Und einen Arduino, der die Motor-Treiber-Brücken steuert.

Super, vielen Dank für die Erklärung. Das hilft schon mal viel. Jetzt muss ich nur noch rausfinden, welche Komponenten ich genau brauche :slight_smile:

Tommy56:
Ich habe das so verstanden, dass es keine Endstellungen gibt, sondern nur (frei) drehen in beide Richtungen und aus.

Genau, die Motoren drehen immer weiter in jeder Richtung. Daran hängen Objekte (ähnlich wie bei einer drehenden Discokugel) die langsam rotieren sollen.

Nocheinmal vielen Dank für Eure Antworten und die super Erklärungen. :slight_smile: Ich bräuchte noch einmal Eure Hilfe, damit ich mich nicht "verkaufe" XD

Ich habe nun mein SetUp mehr schlecht als recht versucht zu testen, aber aus Hardware Gründen hat das nicht ganz so gut geklappt. Jetzt steht eine Bestellung bei reichelt an :slight_smile:

Dass ich nun nichts falsches bestelle, wollte ich nochmal kurz zusammenfassen, ob ich alles richtig hab:

Einen Arduino Mega2560, zusammen mit 5 Motor Treibern für die Motoren an der Decke. Bei Reichelt gibts den L9110 nicht, deswegen hab ich an den **MotoDriver2, L298N **gedacht. Damit sollte ich 10 Motoren ansteuern können, die mit 12 V und 4 W laufen (Vermutlich kann ich bei diesem Modell auch je 2 Motoren in Reihe hintereinander hängen oder?)

Für die Lampen am Boden ( maximal 4 Stück mit je max. 30 W, 12V) brauche ich dann nochmal einen Arduino Uno, zusammen mit 4 MOSFETS IRLZ44N.

Ich habe ein 12 V Netzteil mit 120W, wie würde ich das denn genau anschließen? Einfach nur an den Arduino oder extra jeweils an die Motoren bzw. Lampen?

Habe ich alles oder fehlt mir nochwas?

nougatnn:
MotoDriver2, L298N

Der arbeitet mit bipolaren Transistoren, was zu mehr Wärmeentwicklung - siehe Kühlkörper - führt als bei FETs. Ist also veraltete Technik. Wenn Dich die Wärme nicht stört und Du die gut abgeführt bekommst, sollte es funktionieren.

nougatnn:
Ich habe ein 12 V Netzteil mit 120W, wie würde ich das denn genau anschließen? Einfach nur an den Arduino oder extra jeweils an die Motoren bzw. Lampen?

Zwei Netzteile für unten und oben?

UNO und Mega2560 haben nur wärmeabgebende Längsregler, weshalb ich je einen StepDown (Schaltregler) 12V auf 5 V verwenden würde.

nougatnn:
Habe ich alles oder fehlt mir nochwas?

Je IRLZ34 zwei Widerstände, siehe Using MOSFETS with TTL levels. Oder Du verwendest eine Platine (die Bezeichnung "Spannungswandler" ist irreführend).

Lochstreifenrasterplatine?

Gehäuse? Gehäusefüße? Kabeldurchführungen mit Zugentlastung?

Einschalter? Startknopf?

LED für Rückmeldungen 12 V, 5 V, Programm lauft ...

Ok, dann kauf ich lieber den L9110 :slight_smile:

agmue:
Zwei Netzteile für unten und oben?

UNO und Mega2560 haben nur wärmeabgebende Längsregler, weshalb ich je einen StepDown (Schaltregler) 12V auf 5 V verwenden würde.

Ich hab insgesamt ein Netzteil, was unten und oben speisen soll.
Für die Arduinos habe ich eigentlich an eine eigene Stromversorgung gedacht, die direkt 5V oder 9V bringt, sofern eine dabei ist, sollte das nicht so sein, ist ein Schaltregler auch kein Problem (wenn ich rauskriege welcher gut ist :slight_smile:

Angesprungen hat mich jetzt der hier: TSR-1.

agmue:
Je IRLZ34 zwei Widerstände, siehe Using MOSFETS with TTL levels. Oder Du verwendest eine Platine (die Bezeichnung "Spannungswandler" ist irreführend).

Lochstreifenrasterplatine?

Gehäuse? Gehäusefüße? Kabeldurchführungen mit Zugentlastung?

Einschalter? Startknopf?

LED für Rückmeldungen 12 V, 5 V, Programm lauft ...

Widerstände habe ich, bzw die Uni :). Ein Gehäuse hab ich auf der Liste, Kabeldurchführungen usw. ist in Planung, dazu muss aber erst das SetUp funktionieren :slight_smile:

Einschalter und Startknopf brauche ich nicht. Die Installation soll laufen, wenn der Strom angeht und dann durchlaufen, bis er wieder ausgemacht wird. Das wird entweder mit einem großen Knopf geregelt, den das Museum drücken kann bzw mit einer Zeitschaltuhr, das muss mit dem Museum abgesprochen werden.

LEDs zur Rückmeldung hab ich auch, muss ich schauen, ob ich die einbaue. Da es eine Lichtkunst-Arbeit ist, ist jedes Fremdlicht hinderlich :slight_smile:

Noch eine Frage: Kann ich Strom vom Netzteil an die Motoren anlegen, oder muss der zwingend vom Arduino kommen?

nougatnn:
Kann ich Strom vom Netzteil an die Motoren anlegen, ...

Ja.

nougatnn:
... oder muss der zwingend vom Arduino kommen?

Nein, denn ich wüßte nicht, wie das gehen sollte. Möglicherweise mißverstehe ich aber auch die Frage.

Ein Schaltplan könnte Klarheit bringen.

nougatnn:
Da es eine Lichtkunst-Arbeit ist, ist jedes Fremdlicht hinderlich :slight_smile:

Was machst Du beim Anruf "Die Installation geht nicht!" ?

Man kann störende Anzeigen verschwinden lassen, beispielsweise durch Abkleben.

Hier habe ich mal einen Schaltplan angehängt.

Die LEDs mit den Widerständen sollen die umgebauten Taschenlampen darstellen.
Ich hoffe, dass ich die Verkabelung bei den MOSFETs richtig angelegt habe.

Mit den Kontroll-LEDs muss ich mir noch Gedanken drüber machen, erst muss es mal generell funktionieren, und dazu müssen die Teile erst ankommen :slight_smile:

Vielen Dank schonmal für Eure Hilfe soweit :slight_smile:

nougatnn:
Hier habe ich mal einen Schaltplan angehängt.

Anmerkungen:

  • Ob es eine gute Idee ist, einen Treiber an D0 und D1 anzuschließen, wo auch USB dranhängt?
  • Die 800 mA je Motor summieren sich bei zehn Motoren gleichzeitig zu 8 A, was für ein Steckbrett viel zu viel ist. Daher ist das Steckbrett hoffentlich nur symbolisch!?
  • Viermal GND an die FETs ist dreimal zu viel.
  • Wie sollen die UNOs mit Strom versorgt werden?

Mit dem L9110-Board gibt es evtl. ein Problem:

Die Steuereingänge haben 10kOhm-Pull-up-Widerstände die mit Vcc verbunden sind.
Wie fühlt sich ein Arduino-IO-Pin wenn er mit 12V und 1,2mA Strom "gekitzelt" wird.
Macht der IO-Pin das mit weil es ja "nur" 1,2mA Strom sind oder brennt der IO-Pin dann durch weil es eben 12V sind?

Wenn das für den IO-Pin gefährlich ist muss noch ein Optokoppler dazwischen.

viele Grüße Stefan