Zitat Zitat von Rabenauge Beitrag anzeigen
Hm-ich verstehe die Frage nicht (bzw. finde keine)- aber einige Bemerkungen hätt ich schon.
Zuerst: natürlich kann man auch Servos sehr smooth und langsam laufen lassen, per Mikrocontroller.
Das ist einfach nur ne Frage der Programmierung, grob ungefähr so: möglichst kleine Schritte in (für Mikrocontroller, wir reden hier von Millisekunden) in grösseren Zeitabständen ausführen.

Zweitens: wieso nicht mit zwei Potis vier Türme einzeln ansteuern?
Ich hab im Seeteufel (vor Jahren gebaut) mit einem Schalter vier Funktionen (alles Servos, aber die konnten wahlweise vor und zurück) problemlos umgesetzt.
Der Trick ist: du liest die ganze RC-Geschichte in den Controller ein (gibts praktische Lib's für).
Der Controller dröselt alles logisch auf:
-willst du Turm A steuern, dann gibst du vorher (beispielsweise) einen sehr kurzen Fahrimpuls nach vorne.
Da der zu kurz ist um das Schiff zu bewegen, kann der Controller den Unterschied leicht erkennen, und schaltet Turm A frei.
Nun drehst du am Poti....das Gleiche kannst du mit allen anderen Türmen machen, somit reicht schon _ein_ Poti aus.
Welches Steuerelement du nun als "Shift-Taste" benutzt, musst du selber wissen- irgendwas, was man am Schiff nicht sieht.
In meinem Beispiel (kurzer Fahrimpuls) könntest du den Controller so programmieren, dass Fahrsignale erst dann als Fahrsignale interpretiert werden, wenn sie länger als eine Sekunde dauern- das merkt niemand, und du hast allemal genug Zeit, um die Türme anzuwählen.
Oder: du hast zwei Potis.
Einen nimmst du als Vorwahl (Stellungen 12,3,6,9 Uhr, ungefähr reicht ja), den anderen zum drehen- ganz einfach...

Ich benutze für sowas gerne diese Bibliothek: https://wkla.no-ip.biz/ArduinoWiki/d...ekte:rcreciver
Die hat, gegenüber manch anderer, den Vorteil, dass sie non-blocking ist.
Die übliche Vorgehensweise (die manche anderen nutzen, und die _diese_ auch kann) ist, per PulseIn zu lauschen, was reinkommt.
Dadurch wird aber der Controller die meiste Zeit blockiert....die Interrupt-Methode (alles da beschrieben) tut das nicht!

Was du zuerst lernen musst (zwingend nötig, wenn du Motoren _irgendwelcher_ Art smooth ansteuern willst): nicht-blockierenden Code zu schreiben.
Sämtliche delay(); in den Schleifen sind verboten, bzw. sollten, wenn überhaupt, nur dort eingesetzt werden, wo der Controller wirklich _nichts_ zu tun hat (beispielsweise ist er mit Servoimpulsen grundsätzlich eigentlich ununterbrochen beschäftigt).
Dazu hat die Arduino-IDE ein Beispielprogramm namens blink without delay.
Das _muss_ sitzen.
Wenn du das Beispiel verstanden hast, kannst du ganz problemlos mehrere Vorgänge in unterschiedlichen Zyklen simultan ablaufen lassen, ohne den Controller dabei mit delay's zu blockieren (man kann das problemlos verschachteln).

Dann dazu die genannte Bibliothek, und du kommst zurecht-alles andere ist lediglich ein logisches Aufdröseln der gewünschten Funktionen.
Wenn du eh nen Mega hast, kannst du das furchtbar weit treiben: in meinem Seeteufel kümmert der sich nebenbei noch komplett eigenständig um die Beleuchtung (und das Ding hat, da es ein Schlepper ist, nen ganzen Christbaum am Mast, und kann auch, je nach Einsatz, die entsprechenden Lichter zeigen, ohne mein Zutun), überwacht den Akku, den Rumpf auf Wassereinbrüche, und stellt gleich noch ein Fail-save.
Und da ist noch ne Menge Luft....

Zur Ansteuerung deiner Schrittmotoren kann ich allerdings _gar nicht_ helfen- ich würds mit Servos machen, aber nur, weil ich damit genug Erfahrung habe.


Hallo Rabenauge,

das nenne ich mal ne Ansage, die selbst ich verstehe. Gleich mal ne Gegenfrage von mir: Hast du mal Pics von deiner Seeteufel

Ok zurück zum Thema. Wir sind mehrere Modellbauer, die diesen Code erarbeiten wollen. Und deren Modelle bewegen sich alle im Rahmen von 1:200 und 1:100 und sind alle aus der grauen Flotte.
Natürlich könnte man mit 2 Potis 4 Türme einzeln ansteuern, ob uns Laien das aber in Moment nicht ein bissl überfordert, ist die Frage. Ich bin der einzige, der in unserer Truppe den Mega2560 hat und das da ganz viel Luft nach oben ist, ist mir relativ schnell klar geworden (wenn ich das hin bekomme und die Sache mit den Türmen erledigt ist, sollen auf meine Bismarck noch Beleuchtung und ein Dampferzeuger).

Was ich auf jeden Fall schon mal nicht wusste, war die Sache mit dem Delay. Das das so eine krasse Auswirkung hat (was ja eigentlich auch logisch erscheint), hätte ich mir nicht gedacht.
Und was das Thema Servos vs. Schrittmotor angeht, bin ich persönlich der Meinung, dass es relativ wumpe ist wodurch die Türme sich drehen, Hauptsache sie drehen sich.

Als absoluter Laie ist halt das größte Problem, wenn man sich zum ersten mal mit dieser Materie auseinander setzt und davon mal überhaupt kein Plan hat, wird man förmlich von einer Flut an Informationen erschlagen. Man weiß dann nicht, was kann man verwenden, was nicht, der sagt einem es so, der nächste so und der dritte sagt wieder was ganz anderes (wie war das mit zu vielen Köchen in der Küche).

Warum, wieso oder weshalb erklärt einer seiner natürlich nicht. Das ist so und fertig.
Daher bin ich für deinen Kommentar recht dankbar und versuche das jetzt mal in die Tat um zu setzen.

Grüße
Luthias