ServoDecoder: eine Software für OpenDecoder2 (V1, V2, V2.5) und OpenDecoder3

Überblick

    Modellbauservos sind die preiswerte Möglichkeit schlechthin, um wirklichkeitsgetreue Bewegungen auf der Modellbahn durchzuführen - und da gibt es viel zu bewegen:
      Signale, Schranken, Weichen
      Schuppentore, Türen, Dächer, die sich Öffnen
      Kinder, die am Spielplatz wippen
      Fotograph, welcher sich bei Zugvorbeifahrt mitdreht (und blitzt!)
      Alle möglichen Kirmesfahrgeschäfte
      Bewegte Menschen - beim Trinken, Arbeiten (z.B. Maler, Sensenmäher, Kaminkehrer), Sex
      Bewegte Fahrzeuge (Dampfwalze, Radlader) und Objekte (Wasserkran, Bagger, Lademaß)
      Suchscheinwerfer, Radarschirme
      Segmentdrehscheibe oder Drehbühne.
    Diese Servos brauchen ein spezielles Ansteuersignal, welches mit der hier beschriebenen Software erzeugt werden kann. Im Gegensatz zu vielen käuflichen Lösungen wurde bei dieser Software speziell auf die möglichst wirklichkeitsnahe Bewegung geachtet - die Servos bewegen sich nicht einfach von A nach B, sondern folgen einer Verlaufskurve, welche die Bewegungsabläufe orginalgetreu widerspiegelt. Auch wird die Bewegung feinfühlig und ruckfrei gesteuert (entsprechend gutes Servo vorausgesetzt!), zwischen den angegebenen Punkten der Verlaufskurve wird mit 32 Bit Genauigkeit interpoliert.
    Wenn man OpenDecoder V.2 mit dieser Software lädt, so ist die gleichzeitige Ansteuerung von zwei Servos möglich.

    Diese Software arbeitet als Accessory Decoder, die Programmierung der Servos erfolgt mittels CV (=Configuration Variable). Die Ansteuerung im Betrieb geht dann ganz einfach mit den üblichen Weichentasten.

Theorie: Ansteuerung der Servos

  • Signale zum Servo
    Ein übliches Modellbauservo hat drei 3 Anschlüsse, Stromversorgung und die Positionsvorgabe:
    1. GND (meist schwarz oder braun)
    2. +5V (meist rot)
    3. PWM (meist weiß oder orange)
    GND und +5V dienen zur Versorgung, PWM steuert die Lage an. Die Stecker sind unterschiedlich, nachfolgend eine Übersicht:
    Pinbelegung Servo


    Mit der PWM-Leitung wird die Position definiert. Hierzu wird ein pulsweitenmoduliertes Signal mit einer Wiederholrate von 20ms verwendet. Diese Zeit muß nicht exakt eingehalten werden, sondern kann nach einer Diskussion in d.r.m.b. von 10ms bis 30ms betragen. Die aktive Zeit des PWM-Pulses liegt zwischen 1ms und 2ms. Die Position des Servos bestimmt sich auch der Länge des Pulses, wobei 1ms ganz links und 2ms ganz rechts (also die Endlagen) anfährt. Ein Puls mit 1,5ms würde demnach die Mittelstellung bedeuten. Man kann also direkt mit der Pulslänge die Position des Servos vorgeben. Die im Servo integrierte Regeleletronik sorgt über die Auswertung eines mit dem Hebel gekoppelten Potis für die Einhaltung der vorgegebenen Position.
  • Erzeugung der Signale
    Das benötigte PWM-Signal läßt sich einfach mit dem Timer des AVR-Prozessors erzeugen. Dieser wird so programmiert, daß er bei 20ms umläuft (Fast-PWM-Mode), damit wird das Pulsraster der PWM festgelegt. Da der Zähler 16 Bit breit ist, muß für 20ms der Eingangstakt des Zählers vorgeteilt werden. Dies wird mit der Einstellung clkdiv=8 gemacht, der Zähler taktet dadurch mit 1MHz.
    Mit Hilfe der OCR-Register kann nun ein Schwellwert definiert werden. Der zugehörige Ausgangspin ist während der Zeit von Zählerstand 0 bis zum Zählerstand=OCR auf high, danach auf low. OCR liegt bei der o.g. Taktrate also zwischen 1000 und 2000, was 1ms bis 2ms entspricht.
    Der ATmega8515 (oder auch der ATmega162) verfügt über zwei solche OCR-Register (am gleichen Timer 1), was die Ansteuerung von zwei Servos ermöglicht.

    Mit dem Umlauf des Zählers wird ein Interrupt ausgelöst, welche die Neuberechnung des aktuellen Positionswertes je nach gewünschter Bewegung veranlasst. Alle 20ms wird ein neuer OCR-Wert errechnet.
  • Positionierung
    Die physikalsiche Auflösung eines Servos ist ca. 0,2% bei 90° Weg. Durch die Timerprogrammierung und die Ansteuerung der Servos per Hardware erreicht man eine Auflösung von 1us, d.h. für den Bereich 1ms bis 2ms 1000 Schritte, also etwa 0,1%.
    Die Start- und Zielposition wird als integer [Bereich 0..65535] abgelegt. Selbst wenn man nur das Highbyte hiervon verändert [Bereich 0..255], entspricht dies bereits einer Genauigkeit von 0,3°.
  • Zeit-Ortskurve
    Die Bewegung des Servos erfolgt entlang einer Ortskurve, in der die jeweiligen Stellungen und die zugehörige Zeit als als 8-Bit Integer (Wertebereich 0...255) abgelegt sind. Diese Kurve wird mit hoher Genauigkeit zwischen Start und Ziel interpoliert. Diese Ortskuve ist normiert, d.h. sie wird erst bei Andwendung auf die aktuelle Servokalibrierung umgerechnet. Daher kann der Bewegungsablauf unabhängig von den jeweiligen Endpositionen des Servos definiert werden.


    Als Beispiel ist hier der Bewegungsprofil beim Öffnen eines Formsignals dargestellt: Das Signal wird aufgezogen, dann setzt der Wärter im Stellwerk um und drückt das Signal ganz auf. In der Endlage wippt es noch nach.

    Dieser Verlauf wird als normierte Liste (Wertebereich der Positionen 0..255) von Zeit- und Positionspunkten abgelegt.
    Die Verlaufskurve wird in Einheiten von 0,02s abgelegt, wobei die Zeit wieder einen Wertebereich von 0 bis 255 hat. Damit sind 5,12s direkt erfassbar. Zusätzlich gibt es noch einen Streckungsfaktor (servo.time_ratio), mit dem die Verlaufskurve zeitlich bis zu 21min gestreckt werden kann.
    Es gibt eine Reihe vordefinierter Bewegungsabläufe, wie z.B. Signal, Kinderwippe, Pendel, Schranke, die man einfach auswählen kann.

    Am Ende einer Bewegung kann nathlos eine Folgebewegung aktiviert werden, natürlich muß die folgende Kurve dafür geeignet sein. Die vordefinierten Profile verwenden oft 25 und 230 als Endpunkte, so dass noch etwas Platz für zwischenliegende Profilpunkte bliebt, welche außerhalb der Endpunkte liegen. Diese Festlegung ist willkürlich und könnte auch anders gelegt werden. Dadurch lassen sich aber verschiedene Übergänge frei kombinieren.

    Bei der Ausgabe wird nun diese Liste mit den für diesen Servo geltenden Start und Zielpunkten umgerechnet und damit auf diesen Bereich abgebildet. in der folgenden Graphik ist das für drei verschiedene Endpunktpaare dargestellt:
    Interpolation der Verlaufskurve für verschiedene Min und Max-Punkte

Konfiguration mit CV-Variablen

    Damit das Servo wie gewünscht funktioniert, muß der Decoder für die jeweilige Bewegungsaufgabe konfiguriert werden. Folgende Dinge müssen eingestellt werden:
    1. Die Endpositionen der Servos: diese hängen von der Einbausituation ab.
    2. Das gewünschte Laufverhalten: Hin- und Herlauf jeweils einzeln (wie eine Weiche) oder Dauerlauf (wie z.B. bei eine Wippe), d.h. Hin- und Herlauf werden immer wieder ausgeführt.
    3. Die gewünschte Verlaufskurve, sowohl für den Hinlauf als auch für den Herlauf. Hier kann ganz bequem aus einer Reihe vordefinierter Verläufe (z.B. Signal, Wippe, Schranke) gewählt werden bzw. es können bis zu vier eigene, frei definierbare Verläufe in den Decoder geladen werden.
    4. Die Zeitdauer der Umläufe.
    Diese Parameter und damit das gewünschte Verhalten des Decoders kann einfach durch CV (=Configuration Variablen) eingestellt werden. Es gibt für jeden Servo einen Satz an CV's:
  • CV 545 (33): DECODER MODE
    Diese CV legt die Betriebsart des Decoders fest. Je nach nach Betriebsart kann sich die Bedeutung der folgenden CV's komplett ändern! Beim Mode 4 belegen die Relais die Weichenadressen 1,2,3 und 4; daran schließen sich dann die Decoderadressen des Servos an.
    Eine bestimmte Software unterstützt nicht alle Modi. Sollte ein Mode eingestellt werden, den die geladene Software nicht unterstützt, so blinkt der Decoder 6*schnell-Pause.
    Im folgenden sind nur die CV's für den MODE 1 und 4 (Dual Servo) beschrieben!
  • CV 552 (40): Minimalwert Servo 1 (*=64)
    Wert für Endanschlag unten, Wertebereich 0...255.
    Dies ist eigentlich das High Byte eines Integerwertes, das zugehörige Low Byte ist in CV 551 und braucht normalerweise nicht verändert zu werden.
  • CV 554 (42): Maximalwert Servo 1 (*=192)
    Wert für Endanschlag oben, Wertebereich 0...255.
    Dies ist eigentlich das High Byte eines Integerwertes, das zugehörige Low Byte ist in CV 553 und braucht normalerweise nicht verändert zu werden.
  • CV 555 (43): Kontrollwort Servo 1 (*=0)
    Hiermit wird festgelegt, wie der Servo prinzipiell auf Steuerbefehle reagiert.
      CV 555: Kontrollwort
      Bit: Bedeutung
      0 Umlaufverhalten:
      *0 Taste grün aktiviert Umlauf A
      Taste rot aktiviert Umlauf B
       1 rot: Servo 1 bleibt nach dem nächsten Umlauf Richtung B stehen.
      grün: Servo 1 läuft permanent A - B - A ...
      1 Schaltverhalten der Ausgänge:
       0  Keine Kopplung der Ausgänge mit Servobewegung.
      *1  Bei Erreichen der Endposition wird der jeweile Ausgang eingeschaltet (z.B. für eine Herzstückpolarisierung).
      2 Manuelle Bedienung (nur Hardware Version 3):
       0  keine Taster am Decoder angeschlossen, die Anschlüsse können für die Rückmeldung verwendet werden.
      *1  Steuerung vor Ort per Taster möglich.
      3 Rückmeldekontakt (nur Hardware Version 3):
      *0  keine Rückmeldekontakte angeschlossen
       1 Externe Rückmeldekontakte für eine echte Rückmeldung angeschlossen.
      Hinweis: nicht möglich zusammen mit manueller Bedienung.
      4 Manuelle Justage:
       0  keine zusätzlichen Decoderkommandos für Justage
      *1 zusätzliche Decoderkommandos für Justage der Servos. Schrittweite gemäß CV579
      5 Servoansteuerung auch in Ruhe:
       0  Wenn aktuell keine Bewegung stattfindet, werden auch die Servoansteuersignale abgeschaltet. Das Servo hält die Lage mit der eigenen Rastung.
      *1  Die Servoansteuersignale werden kontinuierlich ausgegeben. Das Servo *regelt* weiterhin die Position (hat mehr Kraft), kann allerdings manchmal leicht knurren. Wenn die Endlage federbelastet ist, ergibt sich ein höherer Stromverbrauch.
      6 Init-Sequenz (mit dieser Option kann (abhängig vom angeschlossenem Servo) eventuell das Einschaltruckeln minimiert werden, s.u.), (ab Version V0.11)
      *0  Zu Beginn ist die Pulskette ausgeschaltet und wird synchron eingeschaltet.
       1  Zu Beginn ist das Pulssignal dauerd ein und wird synchron auf Pulsbetrieb umgeschaltet.
      7 Erweiterter Einstellbereich.
      Manche Servos halten sich nicht an den definierten Bereich von 1ms bis 2ms Pulsbreite, sondern haben einen etwas breiteren Bereich.
      *0  Die Servoansteuerung erfolgt von 1ms bis 2ms
       1  Die Servoansteuerung erfolgt von 0.5ms bis 2.5ms
    Wenn ein Servo auf Dauerbetrieb konfiguriert ist, dann wird es jeweils mit der grünen Taste eingeschaltet und mit der roten Taste ausgeschaltet; Die Zahl der durchzuführenden Umläufe wird mit der folgenden CV eingestellt.
    Bei Betätigen von "rot" wird der gerade aktuelle Umlauf noch fertig abgefahren, damit beim nächsten Einschalten die Startlage mit der abgespeicherten Startlage übereinstimmt. Man sollte einen solchen Betrieb immer kontrolliert beenden, nie einfach abschalten, weil sonst bei nächsten Start ein heftiger Ruck erfolgt.
  • CV 556 (44): Wiederholungen Servo 1 (*=0)
    Sollte CV555, Bit 0 auf 1 stehen (permanenter Lauf), so bestimmt diese CV die Zahl der Wiederholungen.
      CV 556: Wiederholung
      0 Servo läuft nach Aktivierung in Dauerbetrieb
      1..255 Bei einer Aktivierung werden die angegebene Zahl an kompletten A-B Umläufen ausgeführt.
  • CV 558 (46): Bewegung und Zeit-Ortskurve "A" (*=5)
    Hier wird die Verlaufskurve ausgewählt - dies erfolgt mit der Kennzahl der gewünschten Zeit-Ortskurve. Diese Einstellung gilt für den Umlauf "A" (d.h. der Umlauf für Taste grün).

    Bit 7(MSB) legt die Durchlaufrichtung der Kurve fest: rückwärts wird durch ein gesetztes Bit 7 (=MSB) angezeigt.

    Die Kurven in der Tabelle werden zeitlich mit dem Werten der Zeitstreckung gedehnt, in der Tabelle sind die Zeiten für Dehnung=1 angegeben.

    Die Kurven in der Tabelle werden bei der Ausgabe auf die dann jeweils gültigen Minmial- und Maximalwerte (Also CV552/553 und CV554/555) skaliert. Es gilt folgender Bezug:
      Ausgabewert = Tabellenwert * (Max-Min) / 255.
      Ein Ausgabewert 0 entspricht 1ms Pulsdauer, ein Wert von 255 entspricht 2ms Pulsdauer.
      CV 558: Zeit-Ortskurven
      0 keine Kurve
      reserviert für Justage.
      1 benutzerspezifische Kurve 1
      diese Kurve kann mit weiteren CVs im Decoder abgelegt werden.
      2 benutzerspezifische Kurve 2
      diese Kurve kann mit weiteren CVs im Decoder abgelegt werden.
      3 benutzerspezifische Kurve 3
      diese Kurve kann mit weiteren CVs im Decoder abgelegt werden.
      4 benutzerspezifische Kurve 4
      diese Kurve kann mit weiteren CVs im Decoder abgelegt werden.
      5 einfacher Umlauf
      Diese Kurve ist ein einfacher linearer Umlauf von Min nach Max.
         
      6 einfacher Umlauf
      Diese Kurve ist ein einfacher linearer Umlauf von Max nach Min.
      7 weicher Umlauf
      Diese Kurve ist ein einfacher linearer Umlauf mit einer kleinen Beschleunigungsphase am Anfang und Bremsphase am Ende. (cosinus)
         
      8 weicher Umlauf
      Diese Kurve ist ein einfacher linearer Umlauf mit einer kleinen Beschleunigungsphase am Anfang und Bremsphase am Ende.
      9 sinusförmiger Umlauf, Richtung A
      Der Umlauf folgt einer Sinuskurve im Bereich 0° bis +180°. Dieser Umlauf ist zusammen mit dem Umlauf 10 für Pendelbewegungen geeignet.
         
      10 sinusförmiger Umlauf, Richtung B
      Der Umlauf folgt einer Sinuskurve im Bereich 180° bis 360°. Dieser Umlauf ist zusammen mit dem obigen Umlauf für Pendelbewegungen geeignet.
      11 parabelförmiger Umlauf, Richtung A
      Dieser Verlauf ist zusammen mit Umlauf 12 z.B. für eine Wippe geeignet.
         
      12 parabelförmiger Umlauf, Richtung B
      13 Formsignal - HP0
      Dieser Verlauf entspricht dem Schliessen eines Formsignals oder einer Schranke mit Nachwippen.
         
      14 Formsignal - HP1
      Dieser Verlauf entspricht dem Öffnen eines Formsignals mit Nachwippen
         
      15 Formsignal - HP1 - Pause
      Dieser Verlauf entspricht dem Öffnen eines Formsignals mit Umgreifen des Stellwerkers
         
    Es gibt zwei Umläufe (A und B), diese müssen natürlich in Ihrem Verlauf aneinander anschließen können, damit das Servo nicht "springt". Also muß der Umlauf für B dort beginnen, wo A aufhört und umgekehrt. Bei den vordefinierten Umläufen ist das selbstverständlich der Fall. Selbstverständlich kann für den Umlauf B die gleiche Kurve wie für A gewählt werden, diese Kurve sollte aber dann rückwärts durchlaufen werden.
  • CV 559 (47): Zeitstreckung Servo 1, Umlauf "A" (*=1)
    Die geladene Kurve wird um diesen Faktor zeitlich gestreckt.
  • CV 560 (48): Bewegung und Zeit-Ortskurve "B" (*=6)
  • CV 561 (49): Zeitstreckung Servo 1, Umlauf "B" (*=1)
  • Parameter für Servo 2 (Wertebereiche wie oben):
  • CV 564 (52): Minimalwert Servo 2 (*=64)
    (zugehöriges Low-Byte: CV 563)
  • CV 566 (54): Maximalwert Servo 2 (*=192)
    (zugehöriges Low-Byte: CV 565)
  • CV 567 (55): Kontrollwort Servo 2 (*=0)
  • CV 568 (56): Wiederholungen Servo 2 (*=0)
  • CV 570 (58): Bewegung und Zeit-Ortskurve "A" (*=7)
  • CV 571 (59): Zeitstreckung Servo 2, Umlauf "A" (*=1)
  • CV 572 (60): Bewegung und Zeit-Ortskurve "B" (*=8)
  • CV 573 (61): Zeitstreckung Servo 2, Umlauf "B" (*=1)
  • CV 579 (67): Justierschrittweite
    Mit dieser Variablen wird die Justierschrittweite festgelegt, die bei jeden Justierschritt verfahren wird. (muß normalerweise nicht verändert werden)
    Es gilt folgende Zuordnung:
      1: Der Decoder benötigt 4096 Justierschritte für einen vollen Umlauf.
      255: Der Decoder benötigt 16 Justierschritte für einen vollen Umlauf.
    (Hinweis: bei OpenDecoder2 ist manual adjustment normalerweise nicht einkompiliert.)
  • Parameter für ladbare Kurven:
  • CV 600-CV 647: Kurve 1
    Die Kurven werden jeweils als Folge von Paaren aus Zeit- und Ortsangaben abgelegt
    • Die Zeitangaben sind in Einheiten von 20ms anzugeben, 100 entspricht dann 2sec. Sollte eine Laufzeit verlängert werden, so kann mit CV559/561 bzw. CV571/573 die Kurve zeitlich gestreckt werden.
    • Die Ortsangaben sind von 0 bis 255 skaliert und werden dann bei der Ausgabe mit den Min- und Max-Werten des Servos skaliert. Damit bleibt unabhängig vom Weg des Servos die Charakteristik des Umlaufes erhalten.
    • Es dürfen maximal 24 Kurvenpunkte (inkl. Endpunkt) definiert werden, der Endpunkt einer Kurve wird mit Zeit=0 gekennzeichnet.
    • Beispiel: Obige Kurve Nr. 5 "Linearer Umlauf A" würde folgendermassen kodiert sein:
      CV 6000 CV 60125 Startpunkt bei (0;25)
      CV 6022 CV 603128 Zwischenpunkt bei (2;128)
      CV 6044 CV 605230 letzter Punkt bei (4;230)
      CV 6060 CV 6070 (0;0) = Kurvenende
  • CV 648-CV 695: Kurve 2
  • CV 696-CV 743: Kurve 3
  • CV 744-CV 791: Kurve 4


  • Hinweise:

Decoderbefehle

    Nach der Konfiguration des Servodecoders kann er wie jeder andere Decoder auch einfach über die Stellbefehle angesprochen werden. Im folgenden sei für CV555/CV567, Bit 0 der Inhalt 0 angenommen, also getrennte Umläufe für rot und grün.
      Taste Wirkung (bei OpenDecoder 2)
      1 Servo 1 läuft Richtung B um.
      Zu Beginn des Umlaufes wird Ausgang 1 und Ausgang 2 deaktiviert, am Ende des Umlaufes wird Ausgang 1 aktiviert.
      2 Servo 1 läuft Richtung A um.
      Zu Beginn des Umlaufes wird Ausgang 1 und Ausgang 2 deaktiviert, am Ende des Umlaufes wird Ausgang 2 aktiviert.
      3 Servo 2 läuft Richtung B um.
      Zu Beginn des Umlaufes wird Ausgang 3 und Ausgang 4 deaktiviert, am Ende des Umlaufes wird Ausgang 3 aktiviert.
      4 Servo 2 läuft Richtung A um.
      Zu Beginn des Umlaufes wird Ausgang 3 und Ausgang 4 deaktiviert, am Ende des Umlaufes wird Ausgang 4 aktiviert.
      5 Ausgang 5 permanent ein, Ausgang 6 aus.
      6 Ausgang 6 permanent ein, Ausgang 5 aus.
      7 Ausgang 7 permanent ein, Ausgang 8 aus.
      8 Ausgang 8 permanent ein, Ausgang 7 aus.
    Die Ausgänge 1, 2, 3 und 4 können zur Ansteuerung von Relais verwenden, z.B. um nach erfolgtem Umlauf die Polarisation des Herzstückes einer Weiche durchzuführen. Hierbei sollten immer zwei Relais verwendet werden, damit nicht zufällig beim Schalten eines Relais die entsprechende Zunge noch am falschen Gleis anliegt.
    Die Ausgänge 5 bis 8 können als normale bistabile Schaltausgänge verwendet werden.
    Hinweis: bei OpenDecoder2.5 (kleine SMD-Version) werden die Ausgänge nicht geschaltet (sind ja nicht vorhanden, dafür wird auf die Befehl 5-8 Manual Adjustment ermöglicht.)

    Die Hardware bei OpenDecoder3 unterscheidet sich ein wenig. Hier sind die Relais bereits auf der Platine integriert, es sind die Schaltkontakte am Anschlußstecker verfügbar (z.B. für die Herzstückumschaltung) Es gibt anstelle der Schaltausgänge 5 bis 8 vier Tastereingänge (gegen Masse zu schalten), mit diesen Tastern können die Befehle 1 bis 4 gegeben werden.
    Die DCC-Befehle 5 bis 8 werden für eine Programmierung der Endpositionen verwendet. Man braucht hierfür keine CV's zu programmieren.
      Taste Wirkung (bei OpenDecoder 3)
      1 Servo 1 läuft Richtung B um, am Ende des Umlaufes wird Relaiskontakt 1 geschlossen.
      2 Servo 1 läuft Richtung A um, am Ende des Umlaufes wird Relaiskontakt 2 geschlossen.
      3 Servo 2 läuft Richtung B um, am Ende des Umlaufes wird Relaiskontakt 3 geschlossen.
      4 Servo 2 läuft Richtung A um, am Ende des Umlaufes wird Relaiskontakt 4 geschlossen.
      5 Die zuletzt angefahrene Position wird etwas nach unten korrigiert (kleinerer Servo-Wert).
      (Dieser Befehl ist nicht verfügbar, wenn manuelle Justage in CV555 / CV567 gesperrt wurde.)
      6 Die aktuelle angefahrene Position wird etwas nach oben korrigiert (größerer Servo-Wert).
      (Dieser Befehl ist nicht verfügbar, wenn manuelle Justage in CV555 / CV567 gesperrt wurde.)
      7 Der mit den Befehlen 5 und 6 veränderte Servowert wird permanent für diese Position gespeichert.
      (Dieser Befehl ist nicht verfügbar, wenn manuelle Justage in CV555 / CV567 gesperrt wurde.)
      8 Die Geschwindigkeit des zuletzt benutzten Servos wird kann eingestellt werden. Hierzu pendelt das Servo ständig zwischen den Endlagen hin- und her. 5 macht langsamer, 6 schneller, 7 speichert die Einstellung. (dies fehlt noch)

Applikation, Tipps für den Anwender

  • Stromversorgung:
    Die Servos arbeiten auf 5V, diese wird aus der Versorgungsspannung per Längsregler erzeugt. Erfolgt die Versorgung mit DCC oder mit einer hohen Wechselspannung (> 10V), so fällt am Längsregler viel Leistung ab, welche abgeführt werden muß.
    Empfohlen ist die Versorgung mit einen preiswerten Steckernetzteil mit etwa 9 Volt Ausgangsspannung.
  • Ein- und Ausschalten:
    Der Decoder merkt sich die jeweils letzte Lage des Servos. Wenn der Dekoder (und damit das Servo) vor dem Erreichen dieser Lage abgeschaltet wird, dann stimmt beim nächsten Einschalten die gespeicherte Lage und die tatsächliche mechanische Lage nicht überein und das Servo fahrt mit seiner Maximalgeschwindigkeit in die von Decoder vorgegebene Startlage.
    Daher sollte eine Bewegung immer kontrolliert beendet werden, nie einfach abgeschaltet werden.
  • Mechanische Ankopplung:
    Servoankopplung Servos (besonders die billigen) Erzeugen bei Einschalten einen kleinen Ruck. Die Mechanik muß so ausgelegt sein, dass es dadurch nicht Beschädigungen kommt. Also z.B. Kraftübertragung mit Federmöglichkeit oder Gummirutschkupplung vorsehen.

    Ich verwende oft eine Steckverbindung für WireWrap-Stifte - diese klemmen gut genug für einfache Bewegungen, lösen aber sofort bei Überlastung und lassen sich auch noch leicht justieren.

    Weitere Möglichkeiten sind ein Ventilschlauch, durch den (entweder längs oder quer) die Stelldrähte geschoben werden oder das Einbiegen einer federnden Schlaufe in den Stelldraht.
  • Welches Servo?
    Entscheidend für eine feine Bewegung ist neben der perfekten Ansteuerung auch die Wahl des Servos.
    Ich habe verschiedene Servos probiert und hier gilt: Geiz ist NICHT geil!

    Die günstigen Servos von Conrad in der 5-Euroklasse (z.B. ES-05, ES030) ruckeln bei langsamen Bewegungen und haben bei geringen Bewegungen Probleme mit der Auflösung. Zudem hat mich ein ES-05 nach ein paar Stunden 30%-Betrieb einfach im Stich gelassen.
    Empfehlenswert ist das Robbe FS 100 (leise und exakt, kostet etwa 10 Euro) und das Hitec HS-311 und als kleines Servo das Hitec HS-55.
    Beste Ergebnisse lassen sich mit Digitalservos erzielen - diese rucken auch nicht bei Einschalten. -> mehr Details
  • Andere Bewegungskurven:
    Berechnungsblatt zum Erzeugen weiterer Ortskurven: servo_curve.xls bitte per mail anfragen.

Weiter zu: