Dual-Servo-Control

Zuletzt aktualisiert: Mittwoch, 13. Januar 2021

Version 1.0

Die Elektronik ermöglicht es bis zu zwei Servos an den Ausgängen eines Multiswitchdecoders (reine Schaltausgänge) zu betreiben. Pro Servo sind zwei Schaltausgängen des Multiswitchdecoders zu belegen. Sind die Pegel beider Schaltausgänge, die einem Servo durch die Verkabelung zugeordnet wurden, identisch, bleibt die vom Modul erzeugte Impulslänge für den Servo unverändert. Je nach geändertem Schaltausgang verkürzt oder verlängert das Modul die Servoimpulse, so dass sich der Servo nach rechts bzw. links dreht.

Speziell ergeben sich für jeden Servo die folgenden Eigenschaften:

  • Drehwinkelverdopplung (z. B. 90 Grad (Standard) auf 180 Grad; hier ist auf den mechanischen Anschlag der Servos zu achten um diese nicht zu beschädigen)
  • Einstellung der Neutralposition des Servos sowie der beiden Endanschläge (hier muss sich eine Position "auf der einen Seite" und die zweite "auf der anderen Seite" der Neutralposition befinden)
  • Einstellung ob der Servo bei einer Drehung über die Neutralposition stehen bleiben soll oder nicht. Hierdurch lässt sich die Neutralposition leicht wiederanfahren. Ein kurzfristiges Abschalten und erneutes Schalten des Schaltausgangs führt dann zur Fortsetzung der Drehbewegung.
  • Einstellung der Servogeschwindigkeit (bis zu ca. 50s für 90/180°)



Die Einstellungen sind gerade für Sonderfunktionen bei Schiffen z. B. Krandrehungen, Geschützdrehungen, Scheinwerferdrehungen usw. sehr interessant. Ein ggf. wünschenswerte Servoreversfunktion lässt sich leicht durch Vertauschen der beiden Anschlusskabel zum Multiswitchdecoder für das betreffende Servo erreichen und ist daher nicht programmierbar.

Als Eingangspegel der Elektronik sind 5V und 0V (Masse, GND) vorgesehen, bzw. z. B. ein Decoder, der nur gegen Masse schaltet (Open-Collector-Ausgänge). Liefert der Multiswitchdecoder andere Spannungen, so sind Anpassungen erforderlich (Spannungsteiler aus Widerständen bzw. Widerstand und Z-Diode).

Die Programmierung der Elektronik erfolgt über Steckbrücken.

 

Kommentare bisheriger Anwender:

"Bin gerade dabei meinen Kran von Motoren und Relais auf Servos mit Deiner Schaltung umzubauen. Läuft echt super!"

 

Version 2.0

In der Version 2.0 ist eine weitere Eigenschaft hinzugekommen: Es ist nun möglich die Drehgeschwindigkeit in Bezug auf die Drehrichtung zu programmieren, d.h. eine Rechtsdrehung kann mit einer anderen Geschwindigkeit ablaufen wie eine Linksdrehung.

Da ich auch die Doppelbelegung einiger Programmier-Stiftleisten beseitigen wollte, war ein neues Layout umungänglich. Zum Einsatz kam diesmal der 20 polige PIC 16F677 (anstelle des 14 poligen 16F688).

 

Version 2.1

In der Version 2.1 ist wiederum eine weitere Eigenschaft hinzugekommen, die ich bisher nur in einer abgewandelten Software der Version 1.0 (Version 1.1) umgesetzt hatte: Ein automatischer Rücklauf des Servos auf seine Neutralposition falls keine Ansteuerung des Servos mehr erfolgt. Während in der Version 1.1 vom DSC sofort das Neutralsignal auf den Servo gegeben wurde, stehen nun fünf verschiedene Modi zur Auswahl:

  1. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist deaktiviert
  2. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist aktiviert
  3. Rücklauf des Servos in seine Neutralposition mit der für diese Drehrichtung programmierten Geschwindigkeit, Stop in Neutralposition ist deaktiviert (aktiviert man die Drehung zur anderen Seite während der Servo noch auf den Weg zur Neutralposition ist, bewegt er sich sofort zur anderen Seite)
  4. Rücklauf des Servos in seine Neutralposition mit der für diese Drehrichtung programmierten Geschwindigkeit, Stop in Neutralposition ist aktiviert (aktiviert man die Drehung zur anderen Seite während der Servo noch auf den Weg zur Neutralposition ist, stoppt er zunächst in seiner Neutralposition; die Ansteuerung muss kurz unterbrochen und erneut aktiviert werden damit sich der Servo zur anderen Seite bewegt)
  5. sofortiger Rücklauf des Servos in seine Neutralposition

 

Obwohl ich bisher nur von einer Ansteuerung von Servos gesprochen habe, ist die Funktion wohl vor allem für die Ansteuerung von Motoren über Fahrtregler interessant, z.B.für Bugstrahlruder.

Die Auswahl erfolgt über die Stiftleiste "Stop in Ntrl-Pos". Jedes Brücken führt zu einer zyklischen Veränderung des Modus.

Aufgrund der Programmerweiterung passte das Programm nicht mehr in einen 16F677, so dass nun ein pinkompatibler 16F690 zum Einsatz kam.

 

Version 2.2

Die Ansteuerung des Tochterbootaufzugs eines Seenotrettungskreuzers (in diesem Fall die Harro Koebke von Graupner) führte zu einer weiteren Erweiterung der Software und somit zur Version 2.2. Dabei wurde das Programm des DSC grundlegend umgeschrieben.

Beim Tochterbootaufzug befindet sich der Schlitten, in den ein Haken des Tochterboots greift, in Ruheposition des Tochterbootes auf ca. 90% Höhe der Tochterbootwanne (Schätzwert). Zum Ausklinken wird der Schlitten auf seine höchste Position gezogen, klappt dort etwas weg und hakt dadurch das Tochterboot aus, so dass es ins Wasser rutschen kann. Zum Aufnehmen des Tochterbootes wird der Schlitten in seine unterste Position gefahren, in der sich dann das Tochterboot einhaken kann, worauf es bis zur Ruheposition hochgezogen werden kann.

Bei den bisherigen Servo-Modi (1 und 2) war das "Stop in Neutralposition" für beide Richtungen identisch - entweder aktiviert oder deaktiviert. Das führte dazu, dass man bei aktiviertem Stoppen den Taster zum Runterfahren des Schlittens zweimal betätigen musste, da der Schlitten ja bei Bewegung von oberer (Ausklinken des Tochterbootes) in seine untere Position (Aufnahmebereitschaft) durch seine Neutralposition (Ruheposition des Tochterbootes) fährt und somit von der bisherigen Version des DSCs dort angehalten wurde. Nun gibt es zwei Modi, bei denen das Stoppen nur in eine Richtung aktiviert werden kann (3 und 4) bzw. auch zwei Modi, in denen man die Servodrehung nur durch einmaliges, kurzen Schalten eines Einganges aktivieren kann (5 und 6). Die Elektronik dreht dann den Servo bis zur programmierten End- oder Neutralposition.

In Version 2.2 stehen nun zehn Modi zur Auswahl:

  1. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist für beide Drehrichtungen deaktiviert
  2. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist für beide Drehrichtungen aktiviert
  3. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist nur für eine Drehrichtung aktiviert
  4. kein Rücklauf des Servos in seine Neutralposition, Stop in Neutralposition ist nur für eine Drehrichtung aktiviert
  5. Rücklauf des Servos in seine Neutralposition bzw. in beide Endpositionen, Stop in Neutralposition ist nur für eine Drehrichtung aktiviert
  6. Rücklauf des Servos in seine Neutralposition bzw. in beide Endpositionen, Stop in Neutralposition ist nur für eine Drehrichtung aktiviert
  7. Rücklauf des Servos in seine Neutralposition bzw. in beide Endpositionen, Stop in Neutralposition ist für beide Drehrichtung aktiviert
  8. Rücklauf des Servos in seine Neutralposition mit der für diese Drehrichtung programmierten Geschwindigkeit, Stop in Neutralposition ist für beide Drehrichtungen deaktiviert (aktiviert man die Drehung zur anderen Seite während der Servo noch auf den Weg zur Neutralposition ist, bewegt er sich sofort zur anderen Seite)
  9. Rücklauf des Servos in seine Neutralposition mit der für diese Drehrichtung programmierten Geschwindigkeit, Stop in Neutralposition ist für beide Drehrichtungen aktiviert (aktiviert man die Drehung zur anderen Seite während der Servo noch auf den Weg zur Neutralposition ist, stoppt er zunächst in seiner Neutralposition; die Ansteuerung muss kurz unterbrochen und erneut aktiviert werden damit sich der Servo zur anderen Seite bewegt)
  10. sofortiger Rücklauf des Servos in seine Neutralposition

 

Um mit den verschiedenen Modi so langsam nicht durcheinander zu kommen, habe ich dem DSC noch eine LED spendiert. Nach Ändern des Modus blinkt diese LED kurz hintereinander ein- bis zehnmal auf und zeigt dadurch den, für den gewählten Servo aktiven Modus an.

 

 

Version 2.3 / Version 2.4

In der Version 2.2. und auch 2.3 waren leider kleine Fehler, so das es nun bereits Version 2.4 gibt. Am Funktionsumfang hat sich aber nichts geändert. In der Version 2.4 habe ich allerdings noch zwei weitere Widerstände verbaut um das Einschaltzucken der Servos zu minimieren (unterdrücken lässt es scih leider nicht ganz).

 

Version 3.0 (Sonderedition!  wink)

Für unsere vereinsinternen Modellbaukollegen, die einen DSC zur Ansteuerung von Servos auf einer Modelleisenbahnanlage verwenden (Tür-, Schrankenansteuerung usw.) habe ich einmal eine Version mit optischer Anzeige erstellt. Hier besteht die Möglichkeit LEDs anzuschließen, die eine Information über die aktuelle Position der Servos zu bekommen.

 

 

In dem dargestellten Testaufbau (die LEDs werden normalerweise nicht direkt auf die Platine gelötet, sondern auf eine Bedienkonsole verbaut) wird für jeden Servo mittels einer grünen LEDs angezeigt, dass sich der Servo in seiner Neutralposition (=Einschaltposition) befindet. Befinden sich beide Servos in ihren Neutralpositionen, so sollte ein Ab- und erneutes Einschalten der Anlage keine Servobewegungen zur Folge haben (bis auf ggf. ein geringes Einschaltzucken der Servos). Gelbe LEDs zeigen an, dass sich ein Servo nicht in dieser Position befindet und rote LEDs weisen darauf hin, dass eine Endposition erreicht ist (pro Servo je eine LED pro Endposition). Natürlich kann auch hier wieder eine der Endpositionen der Neutralposition entsprechen, so dass in diesem Fall sowohl die grüne als auch eine rote LED leuchtet.

 

 

Zugriffe: 16883