FUN-Schiff

Das Faller FUN-Schiff Nr. 140420 ist wirklich ein ausgezeichnetes Fahrgeschäft. Ein sehr guter Antrieb (Gleichstrommotor mit Metallgetriebe) in Verbindung mit einer intelligenten Steuerung sorgt für einen realistischen Fahrbetrieb.

Der Motor sitzt direkt hinter der Welle und treibt diese direkt an.

Ich habe jedoch die bunten Anschlusslitzen auf weiß ausgetauscht. Diese lassen sich unauffälliger entlang des Mastes führen.

An der Unterseite werden die beiden Litzen durch ein kleines Loch unter die Anlagenplatte geführt.

Im Laufe der Einsatzjahre macht nur irgendwann die Antriebswelle schlapp. Da sie aus zwei Kunststoff-Halbschalen zusammen geklebt ist, hat sich irgendwann die Klebestelle durch die Belastung gelöst. Ich habe stattdessen eine Messingwelle eingebaut.

Ein Reedkontakt registriert wann die Gondel die Mitte passiert hat. Dazu ist in der Gondel ein Magnet eingebaut. Einziger Nachteil ist, dass dadurch die Gondel auch während dem Betrieb kurz anhält, weil der Magnet am Reedkontakt haftet.

Nun sieht ein Kirmes Fahrgeschäft aber erst dann richtig gut aus, wenn es auch beleuchtet ist. Dazu habe ich mir bei fantaisyland.fr vier verschiedene fertig aufgebaute LED Beleuchtungssätze gekauft: Für den Rückwand, für die beiden großen Frontsäulen, für die Sonne und für den Schriftzug. Ja, der Spaß kostet fast 300 Euro, allerdings ist das Angebot an fertigen Beleuchtungssätzen in der Modellbahn-Nische "Kirmes" ohnehin gering, weil sich die meisten für ihre Kirmes-Dioramen solche Beleuchtungen selber bauen. Und die wenigen Anbieter langen dann meist richtig zu, so dass fantaisyland.fr nach meiner Recherche noch einer der Günstigsten ist.

Die fertigen Beleuchtungselemente können sehr einfach auf die vorhandene Konstruktion geklebt werden.

Die dünnen Kupferlackdrähte werden punktuell an den Stützen angeklebt und mit weißer Farbe kaschiert.

Für die Beleuchtung der Treppenstufen und des Kassenhauses habe ich bei kokologgo.de SMD Lichterketten gekauft. Die Lichterketten werden gesondert über einen Arduino angesteuert.

Die Arduinos werden mit Doppelklebeband auf kleine Kunststoffplatten geklebt, die dann unter der Anlage angeschraubt werden können.

Über Schlitze unter dem Fahrgeschäft können die Arduinos unter die Anlagenplatte geführt werden.

So schaut das Karussell im Ruhemodus aus...

... und so in Aktion:

Für diejenigen, die gerne Arduino programmieren, anbei der Code für die Beleuchtung der Treppe und Kasse:

#include "TimerOne.h"

int Treppe_1 = 6;
int Treppe_2 = 7;
int Treppe_3 = 8;
int Treppe_4 = 9;
int Treppe_5 = 10;
int Kasse = 4;
int Treppe_Funktion = 1;
int Treppe_Zaehler = 0;
int Treppe_Anzahl = 2;
int Treppe_Status = 0;
int Kasse_Funktion = 1;
int Kasse_Zaehler = 0;
int Kasse_Anzahl = 2;
int Kasse_Status = 0;

void setup()
{
  pinMode(Treppe_1, OUTPUT);
  pinMode(Treppe_2, OUTPUT);
  pinMode(Treppe_3, OUTPUT);
  pinMode(Treppe_4, OUTPUT);
  pinMode(Treppe_5, OUTPUT);
  pinMode(Kasse, OUTPUT);
  digitalWrite(Treppe_1, LOW);
  digitalWrite(Treppe_2, LOW);
  digitalWrite(Treppe_3, LOW);
  digitalWrite(Treppe_4, LOW);
  digitalWrite(Treppe_5, LOW);
  digitalWrite(Kasse, LOW);

  Timer1.initialize(50000);
  Timer1.attachInterrupt(Zeitkonstante);
}

void Zeitkonstante()
{
  Treppe_Status++;
  Kasse_Status++;
}

void loop()
{
  // Treppe Lauflicht langsam
  if (Treppe_Funktion == 1 && Treppe_Status == 0)
  {
    digitalWrite(Treppe_1, HIGH);
  }
  if (Treppe_Funktion == 1 && Treppe_Status == 6)
  {
    digitalWrite(Treppe_1, LOW);
    digitalWrite(Treppe_2, HIGH);
  }
  if (Treppe_Funktion == 1 && Treppe_Status == 12)
  {
    digitalWrite(Treppe_2, LOW);
    digitalWrite(Treppe_3, HIGH);
  }
  if (Treppe_Funktion == 1 && Treppe_Status == 18)
  {
    digitalWrite(Treppe_3, LOW);
    digitalWrite(Treppe_4, HIGH);
  }
  if (Treppe_Funktion == 1 && Treppe_Status == 24)
  {
    digitalWrite(Treppe_4, LOW);
    digitalWrite(Treppe_5, HIGH);
  }
  if (Treppe_Funktion == 1 && Treppe_Status == 30)
  {
    digitalWrite(Treppe_5, LOW);
    Treppe_Status = 0;
    Treppe_Zaehler++;
  }
  if (Treppe_Funktion == 1 && Treppe_Zaehler >= Treppe_Anzahl)
  {
    Treppe_Funktion = 2;
    Treppe_Zaehler = 0;
    Treppe_Anzahl = 8;
  }

  // Treppe Lauflicht schnell
  if (Treppe_Funktion == 2 && Treppe_Status == 0)
  {
    digitalWrite(Treppe_1, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 2)
  {
    digitalWrite(Treppe_1, LOW);
    digitalWrite(Treppe_2, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 4)
  {
    digitalWrite(Treppe_2, LOW);
    digitalWrite(Treppe_3, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 6)
  {
    digitalWrite(Treppe_3, LOW);
    digitalWrite(Treppe_4, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 8)
  {
    digitalWrite(Treppe_4, LOW);
    digitalWrite(Treppe_5, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 10)
  {
    digitalWrite(Treppe_5, LOW);
    digitalWrite(Treppe_4, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 12)
  {
    digitalWrite(Treppe_4, LOW);
    digitalWrite(Treppe_3, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 14)
  {
    digitalWrite(Treppe_3, LOW);
    digitalWrite(Treppe_2, HIGH);
  }
  if (Treppe_Funktion == 2 && Treppe_Status == 16)
  {
    digitalWrite(Treppe_2, LOW);
    Treppe_Status = 0;
    Treppe_Zaehler++;
  }
  if (Treppe_Funktion == 2 && Treppe_Zaehler >= Treppe_Anzahl)
  {
    Treppe_Funktion = 3;
    Treppe_Zaehler = 0;
    Treppe_Anzahl = 4;
  }

  // Treppe Blink
  if (Treppe_Funktion == 3 && Treppe_Status == 0)
  {
    digitalWrite(Treppe_1, HIGH);
    digitalWrite(Treppe_2, HIGH);
    digitalWrite(Treppe_3, HIGH);
    digitalWrite(Treppe_4, HIGH);
    digitalWrite(Treppe_5, HIGH);
  }
  if (Treppe_Funktion == 3 && Treppe_Status == 3)
  {
    digitalWrite(Treppe_1, LOW);
    digitalWrite(Treppe_2, LOW);
    digitalWrite(Treppe_3, LOW);
    digitalWrite(Treppe_4, LOW);
    digitalWrite(Treppe_5, LOW);
  }
  if (Treppe_Funktion == 3 && Treppe_Status == 6)
  {
    Treppe_Status = 0;
    Treppe_Zaehler++;
  }
  if (Treppe_Funktion == 3 && Treppe_Zaehler >= Treppe_Anzahl)
  {
    Treppe_Funktion = 4;
    Treppe_Zaehler = 0;
    Treppe_Anzahl = 4;
  }

  // Treppe Aufbau/Abbau
  if (Treppe_Funktion == 4 && Treppe_Status == 0)
  {
    digitalWrite(Treppe_1, HIGH);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 3)
  {
    digitalWrite(Treppe_2, HIGH);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 6)
  {
    digitalWrite(Treppe_3, HIGH);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 9)
  {
    digitalWrite(Treppe_4, HIGH);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 12)
  {
    digitalWrite(Treppe_5, HIGH);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 15)
  {
    digitalWrite(Treppe_1, LOW);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 18)
  {
    digitalWrite(Treppe_2, LOW);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 21)
  {
    digitalWrite(Treppe_3, LOW);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 24)
  {
    digitalWrite(Treppe_4, LOW);
  }
  if (Treppe_Funktion == 4 && Treppe_Status == 27)
  {
    digitalWrite(Treppe_5, LOW);
    Treppe_Status = 0;
    Treppe_Zaehler++;
  }
  if (Treppe_Funktion == 4 && Treppe_Zaehler >= Treppe_Anzahl)
  {
    Treppe_Funktion = 1;
    Treppe_Zaehler = 0;
    Treppe_Anzahl = 4;
  }

  // Kasse Blink langsam
  if (Kasse_Funktion == 1 && Kasse_Status == 0)
  {
    digitalWrite(Kasse, HIGH);
  }
  if (Kasse_Funktion == 1 && Kasse_Status == 5)
  {
    digitalWrite(Kasse, LOW);
  }
  if (Kasse_Funktion == 1 && Kasse_Status == 10)
  {
    Kasse_Status = 0;
    Kasse_Zaehler++;
  }
  if (Kasse_Funktion == 1 && Kasse_Zaehler >= Kasse_Anzahl)
  {
    Kasse_Funktion = 2;
    Kasse_Zaehler = 0;
    Kasse_Anzahl = 2;
  }

  // Kasse Blink schnell
  if (Kasse_Funktion == 2 && Kasse_Status == 0)
  {
    digitalWrite(Kasse, HIGH);
  }
  if (Kasse_Funktion == 2 && Kasse_Status == 2)
  {
    digitalWrite(Kasse, LOW);
  }
  if (Kasse_Funktion == 2 && Kasse_Status == 4)
  {
    Kasse_Status = 0;
    Kasse_Zaehler++;
  }
  if (Kasse_Funktion == 2 && Kasse_Zaehler >= Kasse_Anzahl)
  {
    Kasse_Funktion = 1;
    Kasse_Zaehler = 0;
    Kasse_Anzahl = 6;
  }
}