Erfahrungen und Tipps zur Steuerung von einigen Gleichstrommotoren (Seilwinden)

Guten Abend allerseits,

ich bin Arduino-Halbwegsanfänger und dies ist meine erste Frage hier. Wobei es sich mehr um eine Frage nach Tipps als um ein konkretes Problem handelt - ich hoffe, das ist auch erlaubt...

Ich benutze Arduino (einen Mega), um ein Theatermodell zu "elektrifizieren". Bislang handelt es sich dabei um die Lichtanlage (Scheinwerfer und Gebäudebeleuchtung). Das funktioniert auch ganz einwandfrei.

Nun würde ich gerne auch den Schnürboden automatisieren, d.h., die hängenden Kulissen bzw. Vorhänge hochziehen und herunterlassen können. Das geht bisher nur per Hand. Alle Vorhänge hängen an je zwei Seilen, die an der Gebäudedecke umgelenkt und dann an der Gebäuderückseite heruntergeführt werden. Die beiden Seile eines Vorhanges treffen sich unten und werden dann dort auf einer Seilwinde aufgerollt. Die Vorhänge wiegen so gut wie nichts, deshalb werden keine Gegengewichte benötigt.

Diese manuellen Seilwinden würde ich also gerne gegen motorisierte Winden tauschen. Ich schreibe einmal kurz, was ich dazu bisher gelernt habe:

  • Gleichstrommotoren mit Getriebe scheinen das Richtige für diesen Zweck zu sein (ohne Strom dürften sie nicht durchdrehen)
  • Die Drehzahl dürfte nicht sehr hoch sein, damit die Seile nicht zu schnell aufgerollt werden
  • Solche Motoren kann der Arduino (ich würde einen zweiten Mega anschaffen) nicht mit Strom versorgen
  • Mit einem Motorsteuerungs-IC kann man solche Gleichstrommotoren mit externem Strom versorgen und trotzdem bequem über den Arduino steuern
    Habe ich das so halbwegs richtig verstanden? Ansonsten freue ich mich über jegliche Ergänzungen!
    Vor allem interessiert mich, ob ich etwas Besonderes beachten muss, wenn ich ca. 10 solche Motoren mit dem Arduino steuern will? Würden die Pins des Arduino Mega dafür ausreichen oder müsste ich dafür auch Schieberegister o.Ä. verwenden?
    Eignet sich als Steuerungs-IC ein L293D wie hier (bzw. 5 davon)?

Oder hat jemand eine ganz andere Idee für meinen (zugegeben etwas speziellen) Anwendungsfall?

Vielen Dank und
Mit besten Grüßen,
Simba21

Hi

Welche Treiber (aka L293D) Du benötigst, hängt von den verwendeten Motoren ab.
Diese wiederum davon, was Du für Gewichte heben musst und wie schnell, Das wird Dir vorgeben, wie das Getriebe untersetzt.

Sollen die Behänge noch händisch Verfahren werden können?
Wie werden Diese aktuell gegen unabsichtliches Verfahren gesperrt?

Du kannst mit einem Spielzeug-Motor und der entsprechenden Untersetzung einen Panzer anheben - dauert halt entsprechend lange, somit wirst Du Dich zu einem Motor durchringen müssen - dann ergibt sich der Rest.

Solange nur die Ansteuerung beim Arduino bleibt und die Versorgung extern erfolgt (Anderes ist eh kaum vorstellbar, da der Arduino kaum Strom liefern kann - vll. kann ein Vibrationsmotor aus dem Handy direkt versorgt werden, viel Mehr aber wohl nicht), kannst Du mit zwei Pins einen Motor in beide Richtungen drehen lassen. Stichwort H-Brücke.
Per PWM kannst Du diesen Motor auch langsamer machen, hierbei ggf. die Kühlung des Motor beachten.
Diese H-Brücke kann auch auf Relais basieren, verwehrt Dir aber dann PWM und wird mit hoher Wahrscheinlichkeit teurer, als ein Treiber-IC.

Wie stellst Du Dir die Ansteuerung der verschiedenen Motoren vor?
Wer wird Diese im Laufe der Zeit Alles ansteuern dürfen/müssen?
Was spricht die Versicherung dazu? Theater klingt nach 'öffentlich', da könnte ich mir diverse Vorschriften vorstellen - immerhin sind wir hier in Deutschland :wink:

MfG

@postmaster-ino: Mit dem sinnentnehmenden Lesen hast Du es nicht so, stelle ich oft fest. Hervorhebung von mir.

Ich benutze Arduino (einen Mega), um ein Theater**modell** zu "elektrifizieren". Bislang handelt es sich dabei um die Lichtanlage (Scheinwerfer und Gebäudebeleuchtung). Das funktioniert auch ganz einwandfrei.

Gruß Tommy

Guten Abend und vielen Dank für so schnelle Antworten!

Ja, die Versicherung hat sich tatsächlich noch nicht gemeldet, denn soooo groß ist mein Modell nun auch wieder nicht, und öffentlich erst recht nicht :smiley:

Also, wenn ich das richtig verstehe, muss ich mir erstmal einen Motor bestellen, bevor ich mir weitere Gedanken machen kann...?

Und ich brauche zwei Pins pro Motor? Und ich kann auch digitale Pins benutzen, wenn ich auf Geschwindigkeitsregulierung verzichten kann? Dann würden die Mega-Pins ja schon ausreichen für mein Vorhaben.

Auf eine Option zum händischen Verfahren könnte ich verzichten, zumal ich denke, dass das die Sache erheblich verkomplizieren würde...

Wer wird Diese im Laufe der Zeit Alles ansteuern dürfen/müssen?

Und was meinst Du damit?

Mit besten Grüßen,
Simba21

Zur Info: Auch die "analogen Pins" sind ganz normale digitale Pins mit Zusatzfunktion.

Gruß Tommy

Tommy56:
Zur Info: Auch die "analogen Pins" sind ganz normale digitale Pins mit Zusatzfunktion.

Gruß Tommy

Ich lerne gerne. Insbesondere über Elektronik :smiley:
Also kann ich die PWM-fähigen Pins auch mit digitalWrite benutzen? Und der einzige Unterschied zu den "normalen" Pins ist, dass sie zusätzlich die analogWrite-Funktion unterstützen? Das ist ja gut zu wissen...

Hi

Tommy56:
@postmaster-ino: Mit dem sinnentnehmenden Lesen hast Du es nicht so, stelle ich oft fest. Hervorhebung von mir.
Gruß Tommy

Danke Dir für die Hervorhebung, ist mir wirklich nicht aufgefallen - weiteren Dank für Deine netten Worte.
War hier wohl etwas vorschnell - hatte mit Bühnentechnik (wow, großes Wort) aber schon ein paar wenige Male zu tun und Da waren die Behänge nicht ganz so einfach handzuhaben.
Beim 'Modell' werden wohl keine Bühnearbeiter ect.pp. der Versicherung in die Quere kommen.

Du kannst auch per Software die PWM-Funktionalität nachbauen, ob Das für Deine Motoren schnell genug wird, bleibt auszutesten - hier wäre ein sinnhafter Beitrag vll. 'ganz nett' :wink:
Alternativ gibt es externe PWM-Module, per I²C ansprechbar. Wenn auch eigentlich für Servos gedacht.
Dann reichen Dir die ggf. eh schon für I²C benutzten Pins (sonst sind Es Zwei, SDA und SCL - für 'nahezu egal wie viele' Motoren).

MfG

Tja, ich habe auch mit Bühnentechnik zu tun und da sind eher die Schauspieler das Problemchen als die Bühnenarbeiter... :smiley: Die sind bei meinem Modell aber nicht zu befürchten, und meine Scheinwerfer hängen dort alle ganz ohne Sicherungsseil - in der Realität wäre das ja höchst gefährlicher Frevel :wink:

Also werde ich mir erstmal einen Motor und so eine H-Brücke bestellen und mal gucken, wie schnell der mit digital HIGH dreht. Vielleicht passt das ja dann zufällig schon.

Habt Ihr Empfehlungen für solche DC-Getriebemotoren? Muss man da Geld investieren, oder können auch Billigteile reichen?
(Sind Amazon-Links erlaubt? So ein Motor hier zum Beispiel ist ja spottbillig und sehr gut bewertet...)

Vielen Dank für die Hilfe!

Ich würde diese kleinen Schrittmotore mit Übersetzung nehmen. 28BYJ-48. Die bekommst Du mit Treiber für 5V um einige €. Auch stromlos müßte der Motor die Last halten können.
Dazu brauchst Du einen Endschalter damit Du weißt wo sich der Vorhang Kulisse befindet.
Der Vorteil bei Schrittmotoren ist, daß Du weißt wieviel sie sich bewegen und das unabhängig von der Last. Gleichstrommotore sind da weniger genau. Die Drehzahl ist lastabhängig..

Grüße Uwe

Danke!
Das klingt sehr gut. Natürlich wäre es von Vorteil, zu wissen, wo sich ein Vorhang gerade befindet.
Ich habe noch nie einen Schrittmotor in der Hand gehabt. Wenn so ein Schrittmotor zum Beispiel 10 Umdrehungen am Stück machen soll, ist der dann ziemlich laut oder läuft er flüssig?

Und ein Endschalter müsste so klein wie möglich sein, schließlich ist das Ganze ein kleines Modell... Wären dafür Reedschalter die beste Lösung? Das stelle ich mir zumindest am einfachsten vor.

Und dass ich das richtig verstehe: Dann müssten alle Motoren beim Einschalten einmal so lange drehen, bis der entsprechende Endschalter schaltet, und dann hätte man die Position der Vorhänge quasi kalibriert, oder?

Mit besten Grüßen,
Simba21

Tipp:
Seilwinden Servos gibts im Modellbau!
Bereich: Segelboote.

evtl. lohnt sich ein Seitenblick

Danke für den Tipp!
Das klingt auch interessant. Aber hätte es einen Vorteil, einen Servo derartig zu manipulieren, wenn man gleich einen Schrittmotor nehmen kann?
Ich denke mal, da ist es schlichtweg einfacher, es mit solchen Standard-Schrittmotoren zu versuchen wie dem genannten 28BYJ-48. Zumal mein Lötkolben zur Zeit den Dienst verweigert... :confused:

Diese Motoren werden ja tatsächlich meistens mit Treiber angeboten. Den Treiber muss man an vier Pins des Arduino anschließen. Aber wenn ich mehrere (10) solcher Motoren steuern will? Braucht jeder Motor dann vier Pins?
Ich habe das hier durchgelesen, aber da war es wohl nicht nötig, die Motoren unabhängig voneinander zu steuern...

Braucht jeder Motor dann vier Pins?

Die Motoren beherrschen keine Telepathie!
Auch fehlen dir noch die Endschalter bei der Zählung.

Servos brauchen nur 1 Pin. (plus Endschalter)

Auch fehlen dir noch die Endschalter bei der Zählung.

Gut, dass Du das sagst... Die Schalter hätte ich glatt wieder vergessen.
Lässt sich ein so umgebauter Servo denn auch so präzise steuern wie ein Schrittmotor?

Lässt sich ein so umgebauter Servo denn auch so präzise steuern wie ein Schrittmotor?

Wenn du ihm einen Drehencoder verpasst, ja.

Aber ein Drehencoder belegt doch auch wieder einige Pins... :o

Hi

Die Signale für die Schrittmotore kannst Du auch per Port-Expander (Schieberegister) bereit stellen.
Die 28BYJ-48 haben ein stark untersetzendes Getriebe - da verläuft Dir der Behang nicht von selber.
Geräusche: ja, aber bei dem Motörchen hält sich Das in starken Grenzen - trotzdem würde ich Das erst mit Einem probieren, bevor ich das ganze Konvolut kaufe und dann doch mit Vibrationen zu kämpfen bekomme - der Chinese liefert halt leider etwas langsam.

Endschalter - müsste man überdenken, ob man Diese (bei einem Model) unbedingt braucht - oder ob es reicht, wenn ich dem Arduino sage 'Motor 3 ist in oberer Endposition' - ein Tastbetrieb zum Verfahren ist wohl eh vorgesehen, da die Behänge ja verfahrbar sein sollen - oder denkst Du auch an automatische Wechsel nach?

Encoder ist noch eine ganze Menge übertriebener als Endschalter, aber wenn's doch ein Mars-Roboter werden können soll ... :wink:

Mein Vorgehen: Referenzieren (Jedem Motor bekannt geben, WO Dieser gerade steht), den Rest macht der Arduino mit den eingetragenen Soft-Limits (klar, Die müssen eingemessen werden oder anders in den Arduino kommen - DAS kann man sich mit Endschaltern sparen).

MfG

Vielen Dank, das hört sich an wie ein sehr guter Plan!

Ich habe mir einen 28BYJ-48 mit Treiber (so ein grüner) bestellt, der angeblich morgen geliefert werden soll... Da bin ich ja mal gespannt.

Endschalter - müsste man überdenken, ob man Diese (bei einem Model) unbedingt braucht

Da könntest Du Recht haben; auf jeden Fall würde es schwierig werden, so etwas in meiner Modellgröße zu konstruieren (und vielleicht zu fehleranfällig bzw. labberig). Die Idee mit der Referenzierung finde ich super. Vielleicht wäre es das Einfachste, nach jedem Neustart der Software jeden Behang einmal ganz hochzuziehen und dem Arduino dann zu signalisieren, dass nun alles "auf Null" hängt.

Zur Benutzerinteraktion: Das ganze Theater steuere ich (bzw. steuert man) über eine (selbstgeschriebene) Windows-Forms-Desktop-Anwendung. Die enthält zur Zeit insbesondere das Lichtstellpult und wird dann demnächst ein neues Fenster für die Bühnentechnik bekommen, das ähnlich aufgebaut sein könnte: Mit Optionen zur manuellen Steuerung aller Behänge (nach dem Motto "solange man gedrückt hält, bewegt sich der Motor"), aber auch mit der Möglichkeit, Übergänge (Szenen) zu speichern. Das sollte dann ja auch kein Problem sein, vorausgesetzt, man kalibriert die Teile nach jedem Neustart neu.
Eventuell könnte die Software ja auch alle Verfahr-Operationen während der Laufzeit speichern, auf diese Weise immer die aktuelle Position eines Behanges kennen und beim "regulären Herunterfahren" alle Behänge wieder nach oben ziehen. Dann müsste man die Positionen nur nach einem unvorhergesehenen Neustart / Ausfall neu per Hand einstellen. Sind die Motoren dafür präzise genug? Oder habe ich da einen Denkfehler?

Die Motoren sind bei richtiger Ansteuerung präzise genug. Aber auch Deine Mechanik muss diese Präzission (keinen Schlupf) haben.

Gruß Tommy

Hi

Schlupf - denke ich, werden wir Da Keinen rein bekommen - die Welle ist beidseitig flach geschliffen - wenn, bekommen wir einen Winkelfehler, was aber nicht stören sollte.

Präzision: Naja, bei jedem Step macht der Kleine ca. 1/2048tel Umdrehung.
Siehe:es-geht-doch-schrittmotor-28byj-48 (mit Beispiel-Sketch ... zumindest ein ZIP)
(ca., da das Untersetzungsverhältnis nicht gerade ist, am Bestimmungsort des Motor, war glaube eine Lüftungsklappe, scheint Das aber kein Problem zu sein - schwieriger wird's erst, wenn man 'genau' 7 Umdrehungen fahren will)

Je nach Dicke Deiner aufgewickelten Behänge, kannst Du Diese schon recht smoothig verfahren (Umfang:2048).
Spätestens nach einem Vollschritt (beide Wicklungen bestromt) sollte der Stepper am Rastpunkt angekommen sein.

MfG