Lego Eisenbahn mit Legopowerfunktion steuer. Die Library gibt es bei Github.

Für die Übertragung der Fahrbefehle an die Lok habe ich mich für Infrarottechnik entschieden.
Die Lok muss unbedingt einen Originalempfänger 8884 von Lego enthalten. Der Empfänger hat 4 Kanäle (schaltbar) und zwei Ausgänge. (rot und blau). An einen kommt der Lokmotor. der andere ist für Sonderfunktionen wie Licht oder Hupe.

Ir Transmitter für Legopowerfunktion

Ja so funktioniert es, ohne Widerstände. Die TSAL 6400 die ich verwende arbeitet im 38Hz bereich und kann deutlich über 100mA ab. 3 LED's parallel geschaltet und in verschiedene Richtungen zeigend reichen für ein ganzes Zimmer.
Die vielen Schaltungen die ich auf meiner Suche gesehen habe, mit Vorwiderstand auf Steckbrett funzen nur im Nahbereich.
So hab ich es getestet und so funzt. es.

Die LED's können natürlich auch zwischen 5v und Collector. Beim testen und dauererndem umstecken hats bei mir nur so funktioniert. Erst später habe ich gemerkt das eine Led defekt war. Der BC547 ist auch ein bischen schlapp.
Ich werds in kürze mit einem BC337 testen. Der schaft 800mA.

 

 

 

 

 

Hier ein Codebeispiel bei dem de Motor (an blau angeschlossen) beschleunigt. 2 Sek läuft, stopt und dann2 Sek. rückfährts läuft.

#include
LEGOPowerFunctions lego(12);

void setup() {}

void loop(){
lego.SingleOutput(0, PWM_FWD2, BLUE, CH1);
delay(10);
lego.SingleOutput(0, PWM_FWD3, BLUE, CH1);
delay(10);
lego.SingleOutput(0, PWM_FWD5, BLUE, CH1);
delay(2000);
lego.SingleOutput(0, PWM_FLT, BLUE, CH1);
delay(500);
lego.SingleOutput(0, PWM_REV2, BLUE, CH1);
delay(2000);
lego.SingleOutput(0, PWM_FLT, BLUE, CH1);
delay(1000);
}

IR Sender für Lego Train

Hier mein Prototyp. Die Widerstände habe ich überbrückt. Jetzt reichts fürs ganze Zimmer.

Einen elektischen Weichenantrieb zu bauen war für mich eine Herausforderung. Nach Tagelangen recherchieren im Internet habe ich eine ganz einfach Lösung gefunden.

Weichenantrieb für Lego Train mit Servo SG90 Trackswitch1  Trackswitch for Lego with Servo SG90

Wirklich ganz einfach. Den Servo mit Heisskleber auf eine Platte 4 x 4 kleben. Darauf achen das die Stange hinterher grade läuft. 2 Löcher exakt in etwas Plastik oder sonstiges stabiles Material bohren. Mit ein paar Platten fest montieren. Im Sketch die Bewegung exakt programmieren, sonst zerreisst es alles.

 

Hier der Code:

#include <servo.h>;
int button = 2;
int press = 0;
Servo servo;
boolean toggle = true;

void setup()
{
pinMode(button, INPUT);
digitalWrite(2, HIGH);
servo.attach(9);
servo.write(60);
digitalWrite(2, HIGH);
}

void loop()
{
press = digitalRead(button);
if (press == LOW)
{{
if (toggle)
{
servo.write(123);
toggle = !toggle;
}
else
{
servo.write(78);
toggle = !toggle;
}
delay (500);
}
}
}

Login Form