LocoNet Spezialdekoder

Aus Digital Modellbahn

Eigenbau | Allgemein | LocoNet Buffer | LocoNet Kreuzung | LocoNet Throttle | LocoNet Light Control | LocoNet Spezialdekoder

Drehscheibe

Eine einfache Drehscheibe (Handbetrieb) umgebaut mit Motor+Encoder, Encoderscheibe 48x und Arduino Ansteuerung über LocoNet
Encoderscheibe 48x mit 2 Kanal SMD Gabellichtschranke (Conrad 179998)

Eine Drehscheibe ist im Handel sehr teuer. Wenn es dann noch eine mit digitaler Ansteuerung sein soll, ist das für den kleinen Hobby-Modellbahner kaum zu bezahlen. Ich habe mir deshalb eine Universaldrehscheibe für Handbetrieb bei Conrad gekauft. Ein Motor mit Getriebe und vier Schleifringen wird benötigt, um die Drehscheibe digital ansteuern zu können. Ein Mikrocontroller muss die Daten aus dem LocoNet in Befehle zur Steuerung der Motorgeschwindigkeit und Fahrtrichtung umsetzen. Um eine exakte Positionierung zu bekommen, habe ich zunächst einen Impulssensor (Hallsensor) an der Abtriebsachse des Motorgetriebes integriert. So konnte ich die Anzahl der Umdrehungen erfassen. Das Getriebe verursacht leider ein gewisses Spiel, welches ich so nicht erfassen konnte. Also habe ich weiter probiert und habe eine Encoderscheibe mit einer Einteilung von 48 Abgängen mit einem CAD-Programm erstellt. Diese wird von einer 2 Kanal Gabellichtschranke ausgelesen. (Eine einfache 1 Kanal Gabellichtschranke reicht wohl auch aus, ist aber nicht ganz so exakt. Dann man bedenke die Bühne dreht ja in beide Richtungen und soll trotzdem nicht zu früh anhalten.) In Verbindung mit dem Hallsensor im Motor kann so eine exakte Positionierung erfolgen. LocoNet bietet außerdem die einfache Möglichkeit gleich die aktuelle Position an die PC-Software zurückmelden.

Encoderscheibe:

Die von mir verwendete Encoderscheibe mit 5cm Durchmesser und einem Innenloch von 2,5cm Durchmesser:


Schaltplan:


Software:

Die Software ist mit der Arduino IDE geschrieben.


Für eine ganz exakte Positionierung und der Möglichkeit wie im Vorbild Herzstücke in eine Drehscheibe zu integrieren wird ein Schrittmotor für die Steuerung eingesetzt. Eine Erklärung und Ansteuerung findet sich dazu auf OpenDCC.

Schrittmotoren:

Berechnung der Genauigkeit: (Länge Drehscheibe * Pi) / Schritte = mm
Bei den weiteren Angaben wird hier von einer Drehscheibe mit der Länge von 260mm ausgegangen.
Das Haltemoment sollte bei ca. 0,26Nm (26Ncm) liegen.

  • Trinamic Schrittmotor QSH4218-35-026 (Reichelt)
    - 200 Schritte, mit Microstepping (1/32) 0,13mm pro Schritt (Datasheet)
  • NEMA-16 Stepper 16HM15-0504S oder 16HM17-0304S (AliExpress)
    - 400 Schritte, mit Microstepping (1/16) 0,13mm pro Schritt (Datasheet)
  • NEMA-17 Bipolar 48mm Stepper 42BYGHM810 (Phidgets) - 400 Schritte
  • NEMA-23 Bipolar Stepper 23HM20-0384S (StepperOnline) - 400 Schritte

Ansteuerung

Der Schrittmotor treibt direkt über seine Achse die Bühne der Dehscheibe. Für die Ansteuerung des Schrittmotor kann ein Schrittmotor Treiber (Allegro A4988/A4983 IC) mit passender Arduino Library verwendet werden.

Ein Arduino UNO der über ein LocoNet Interface kommuniziert steuert die Drehscheibe. Zur Bestimmung der "Nullstellung" oder Home-Position ist unter der Drehscheibe ein Hallsensor installiert und in der Bühne ein Magnet. Der von mir verwendete Schrittmotor 16HM15-0504S (17 Euro) mit 400 Schritten wird im Mikroschrittbetrieb (1/16) über ein A4988 Treiber angesteuert. Damit erreicht der verwendete Schrittmotor, bei einer Bühnenlänge von 260mm, eine Genauigkeit von ca. 0,13mm.