LEGO Modelle lebendig beleuchten: Dritter Teil

Jetzt geht es an die Praxis!

Im dritten Teil der Beleuchtungsserie schnappen wir uns das 10243 Pariser Restaurant und verlegen die Kabel sowie die LEDs.

Ich freue mich, dass ihr auch im dritten Teil der Vorstellung meiner Art der Beleuchtung von LEGO-Sets und MOCs dabei seid. Nachdem ich in Teil 1 und Teil 2 schon ein bisschen auf die Methode, wie ich meine Modular Buildings und MOCs beleuchte, eingegangen bin, möchte ich mit diesem Artikel die Serie vorerst abschließen und das Pariser Restaurant fertig beleuchten.

Einführung

Im ersten Teil bin ich auf verschiedene Methoden eingegangen, wie sich LEGO-Modelle beleuchten lassen. Hier findet ihr auch das benötigte Material. Im zweiten Teil sind wir dann in die Grundzüge der Programmierung eingestiegen, die eine Beleuchtung erst so richtig lebendig macht. In diesem Artikel werden wir uns jetzt exemplarisch das Pariser Restaurant vornehmen, und zuerst ein kleines Programm, auch Sketch genannt, für eine lebhafte Beleuchtung dessen schreiben. Danach werden die LEDs verkabelt und installiert.

Das Programm / der Sketch für unser Vorhaben

Bevor man sich an das Programmieren machen kann, benötigen wir natürlich einen Plan – ich hatte folgendes im Kopf:

  1. In der Küche schwebte mir eine beim Anknipsen flackernde Neonröhre vor.
  2. Der Gastraum sollte über eine gemütliche warmweiße (gelbe) Beleuchtung verfügen.
  3. Das 1.OG sollte mit einer kaltweißen LED ausgestattet werden.
  4. Im 2. Obergeschoss wollte ich über eine rote und eine gelbe LED ein Kaminfeuer simulieren. Dies dürfte die schwierigste Aufgabe sein, da das Flackern nicht “programmiert” aussehen soll. Hier benötigen wir also eine Zufallskomponente.

Den Gastraum möchte ich mit zwei LEDs ausstatten, damit der recht große Raum gut erhellt ist. An allen anderen Ports sollte eine LED ausreichen. Insgesamt werden also 5 Ausgänge benötigt, da ich das Kaminfeuer mit einer roten und einer gelben LED simulieren möchte. Ich würde euch empfehlen, das Programm erst mal “im Trockenen” auszuprobieren, da es nach der Installation immer einer etwas größeren Fummelei bedarf. Das komplette Programm zum Kopieren in die Arduino IDE findet ihr am Ende dieses Abschnitts.

Ports initialisieren

Im Kopfteil des Programms müssen wir wieder die Ausgänge, an die unsere LEDs angeschlossen werden sollen, benennen. Wörter hinter zwei Schrägstrichen sind übrigens Kommentare zum besseren Verständnis und werden vom Controller bei der Programmausführung einfach ignoriert.

void setup() {
 pinMode(D0, OUTPUT); // Gastraum
 pinMode(D1, OUTPUT); // Küche
 pinMode(D2, OUTPUT); // 1.OG
 pinMode(D3, OUTPUT); // Kamin (gelb)
 pinMode(D4, OUTPUT); // Kamin (rot) 
}

Damit ist der setup-Teil unseres Programmes schon fertig.

Küche / Leuchtstoffröhre simulieren

Jetzt kommen wir zum eigentlichen Programm. Zuerst möchte ich in der Küche ein Flackern der Leuchtstoffröhre beim Anschalten simulieren.

void loop() {

analogWrite(D1, 150);   // Zuerst in ca. halber Helligkeit anschalten            
delay(500);             // Halbe Sekunde warten
analogWrite(D1, 50);    // Dunkler werden
delay(500);             // Halbe Sekunde warten
digitalWrite(D1, HIGH); // Volle Helligkeit
delay(10000);

1.OG und Gastraum

Die Beleuchtung im Gastraum und im 1. OG kann dann nach etwas Wartezeit ganz normal eingeschaltet werden:

digitalWrite (D0, HIGH); // Innenraum beleuchten
delay(6000);

digitalWrite (D2, HIGH); // Erstes OG beleuchten
delay(3000);

2.OG / Kaminfeuer

Jetzt kommt der schwierigste Teil – das Kaminfeuer.

int Zufallszahl;                 // Variable, die die Zahl speichert
for (int i=1; i<120; i++) {
  if(i<20){
    Zufallszahl = random(0,90);}  // Zufallszahl von 0 bis 90 wird erzeugt
  if(i<80){
    Zufallszahl = random(0,250);} // Zufallszahl von 0 bis 250 wird erzeugt
  else if(i<100){
    Zufallszahl = random(0,150);} // Zufallszahl von 0 bis 150 wird erzeugt
  else if(i<110){
    Zufallszahl = random(0,90);}  // Zufallszahl von 0 bis 90 wird erzeugt
  else{
    Zufallszahl = random(0,40);}  // Zufallszahl von 0 bis 40 wird erzeugt
analogWrite(D3, Zufallszahl);     // Die Helligkeit der gelben LED wird auf den Zufallswert gesetzt
  delay(100);                     // Kurze Unterbrechung
analogWrite(D4, Zufallszahl/3);   // Die Helligkeit der roten LED wird auf ein Drittel des Zufallswertes gesetzt
  delay(400);
}

Was zuerst kompliziert wirkt, ist eigentlich gar nicht so komplex. In der ersten Zeile richten wir uns eine Variable ein, die Zahlen speichern kann. Konkret wollen wir ja die Helligkeit der LEDs zufällig festlegen. Dann öffnen wir eine for-Schleife. Damit sagen wir dem Controller: Führe das nachfolgende Programm für eine gewisse Anzahl an Durchgängen aus. Ich habe mich zuerst für 120 entschieden. Mit dem random()-Befehl wird eine Zufallszahl im angegebenen Bereich erzeugt. Wir erinnern uns: Eine LED kann man im Bereich von 0-250 dimmen.

Da das Feuer natürlich nicht sofort hell auflodert, beginnen wir mit Zufallszahlen von 0-90. Danach brennt das Feuer, am Ende geht es langsam aus. Dies wird mit den if-Abfragen erreicht. Mit diesen wird sinnbildlich gefragt: In welchem Durchgang befindet sich das Programm aktuell? Je nach Ergebnis wird eine größere oder kleinere Zufallszahl erzeugt.

Danach wird die Helligkeit der gelben LED auf den erzeugten Zufallswert gesetzt und die Helligkeit der roten LED auf ein Drittel des Zufallswertes, da die rote LED etwas stärker ist und den gelben Anteil sonst übertreffen würde.

Schrittweises Ausschalten

Danach wird eine LED nach der anderen ausgeschaltet.

digitalWrite(D3, LOW);             // Gelbe LED wird ausgeschaltet
digitalWrite(D4, LOW);             // Rote LED wird ausgeschaltet
delay (4000);

digitalWrite (D0, LOW);            // Beleuchtung des Restaurants wird ausgeschaltet
delay(2000);

digitalWrite (D1, LOW);            // Beleuchtung des Küche wird ausgeschaltet
delay(5000);

digitalWrite (D2, LOW);            // Beleuchtung des ersten Obergeschosses wird ausgeschaltet
delay(120000);                     // Pause von 2 Minuten, bis das Programm von vorne beginnt
}

Am Ende habe ich eine Pause von zwei Minuten eingebaut, bis die Beleuchtung wieder nach und nach eingeschaltet wird. Somit lässt sich ein “Arbeitsalltag” mit Tag- und Nachtrythmus für die Minifiguren simulieren.

Ganzer Code

Hier habe ich für euch jetzt noch einmal den Code für den ganzen Sketch zusammengestellt. Den könnt ihr, so wie er ist, in die Arduino IDE kopieren und danach auf euer Board hochladen. Also, wie bekannt: Board anschließen, auf den Pfeil/Hochladen klicken und etwas Geduld mitbringen.

void setup() {
 pinMode(D0, OUTPUT); // Gastraum
 pinMode(D1, OUTPUT); // Küche
 pinMode(D2, OUTPUT); // 1.OG
 pinMode(D3, OUTPUT); // Kamin (gelb)
 pinMode(D4, OUTPUT); // Kamin (rot)  
}

void loop() {
analogWrite(D1, 150);   // Zuerst in ca. halber Helligkeit anschalten            
delay(500);             // Halbe Sekunde warten
analogWrite(D1, 50);    // Dunkler werden
delay(500);             // Halbe Sekunde warten
digitalWrite(D1, HIGH); // Volle Helligkeit
delay(10000);

digitalWrite (D0, HIGH); // Innenraum beleuchten
delay(6000);

digitalWrite (D2, HIGH); // Erstes OG beleuchten
delay(3000);

int Zufallszahl; // Variable, die die Zahl speichert for (int i=1; i<120; i++) {  if(i<20){ Zufallszahl = random(0,90);} // Zufallszahl von 0 bis 90 wird erzeugt if(i<80){ Zufallszahl = random(0,250);} // Zufallszahl von 0 bis 250 wird erzeugt else if(i<100){ Zufallszahl = random(0,150);} // Zufallszahl von 0 bis 150 wird erzeugt else if(i<110){ Zufallszahl = random(0,90);} // Zufallszahl von 0 bis 90 wird erzeugt else{ Zufallszahl = random(0,40);} // Zufallszahl von 0 bis 40 wird erzeugt analogWrite(D3, Zufallszahl); // Die Helligkeit der gelben LED wird auf den Zufallswert gesetzt delay(100); // Kurze Unterbrechung analogWrite(D4, Zufallszahl/3); // Die Helligkeit der roten LED wird auf ein Drittel des Zufallswertes gesetzt delay(400); } digitalWrite(D3, LOW); // Gelbe LED wird ausgeschaltet  digitalWrite(D4, LOW); // Rote LED wird ausgeschaltet  delay (4000);  digitalWrite (D0, LOW); // Beleuchtung des Restaurants wird ausgeschaltet  delay(2000);  digitalWrite (D1, LOW); // Beleuchtung des Küche wird ausgeschaltet  delay(5000);  digitalWrite (D2, LOW); // Beleuchtung des ersten Obergeschosses wird ausgeschaltet  delay(120000);  // Pause von 2 Minuten, bis das Programm von vorne beginnt }

Dann das Programm einem kurzen Test unterziehen: LEDs, so wie im zweiten Teil beschrieben, mit einem Widerstand an den Ausgängen D0-D4 und der Erdung anschließen und den Controller mit einer Stromquelle verbinden.

Verkabeln der LEDs

Hat das alles geklappt, können wir uns daran setzen, die Leitungen in unserem Modell zu verlegen.

Allgemeines zu Kabelführung und Installation

Schon im ersten Artikel habe ich euch gezeigt, dass sich beide LED-Größen prima in das LEGO-System einfügen. Die Installation von LEDs einem Technic-Brick ist besonders außerhalb von Gebäuden, beispielsweise als Ampel, Schweinwerfer oder Lichtpunkt in Fahrgeschäften, geeignet.

Lichtpunkte an Außenseiten

Die Installation einer LED in einem Technic-Brick für die Ausleuchtung ganzer Räume ist dagegen eher kontraproduktiv, schließlich werden alle Seitenflächen der LED verdeckt und sie strahlt nur noch in zwei Richtungen ihr Licht ab.

Für diese Art der Beleuchtung und für die Kabelführung verwende ich daher zwei 1×1 Platten und eine 1×3 Platte. Darunter lassen sich Kabel sicher festklemmen.

Kabelkanal – aus drei Platten

Bei der Beleuchtung von LEGO-Modellen geht es natürlich anders zu als in der Wirklichkeit. Denn das Ziel ist es ja nicht, für die Minifiguren die Räume zu beleuchten, sondern die Beleuchtung für den Betrachter hervorzuheben. Gerade, wenn die Räume von außen nicht komplett einsehbar sind, ist es wichtig, die LEDs in der Nähe des Fensters zu positionieren. So wirkt der gesamte Raum von außen lichtdurchflutet. Setzt man die LED dagegen in die Mitte des Raumes, kommt von dem Licht am Fenster nicht mehr viel an. Um die Kabel zum Steckbrett zu verlegen, bieten sich bei den Modulars immer Fenster und Türen an der Rückseite des Gebäudes an.

Besonderheiten Powerbank

Habt ihr euch für eine Stromversorgung mittels einer Powerbank entschieden, benötigen wir jetzt noch ein Hilfsmittel. Die allermeisten Powerbanks am Markt schalten sich ab, wenn sie meinen, dass das angeschlossene Gerät, beispielsweise ein Smartphone, fertig aufgeladen sei. Wenn unsere LEDs nun über einen längeren Zeitraum ausgeschaltet sind (am “Tag”) würde das dazu führen, dass sich die Powerbank abschaltet. Daher müssen wir für einen kleinen konstanten Stromverbrauch sorgen. Dazu bietet sich ein 100 Ohm Widerstand an, der konstant eine kleine Menge Strom in Wärme umwandelt. Er wird zwischen den 5V / VIN Pin und einen Ground-Pin geschlossen, wie im folgenden Foto zu sehen. Habt ihr das erledigt, sollte sich die Powerbank nicht mehr ausschalten – und wir sind startklar!

Installation im Pariser Restaurant

Für das Untergeschoss habe ich mir ein Neonlicht in der Küche vorgestellt. Den Innenraum des Lokals wollte ich etwas “gemütlicher” in Szene gesetzt haben. Daher habe ich eine weiße LED an die Unterseite des “Biergartens” und zwei gelbe LEDs an der Bodenplatte des ersten Stockwerkes, überhalb der Fenster, montiert.

Küchenbeleuchtung

Beleuchtung des Gastraumes

Im ersten Stockwerk habe ich mich ebenfalls für eine etwas kältere Beleuchtung mittes einer weißen LED entschieden.

Zum Schluss füge ich für die Kaminstimmung eine gelbe LED und eine rote LED dem Künstler-Atelier hinzu. Hier ist eine Platzierung durch das aufklappbare Dach sehr einfach.

Kaminfeuer

Jetzt müssen unsere sechs LEDs nur noch mit den vorbereiteten Ausgängen, D0 bis D4, verbunden werden. Das sieht zwar schnell unübersichtlich aus, ist aber im Grunde nichts anderes, als wir es schon im zweiten Teil verkabelt haben – bloß mit etwas mehr LEDs.

Kabelsalat? Hier hat alles seine Ordnung!

Danach kann der Mikrocontroller wieder mit der Stromquelle verbunden werden. Sollten nicht alle LEDs leuchten, zuerst die jeweiligen Stecker einmal umtauschen – also das Kabel, das in der GND-Reihe steckte, in die D0-D4 Reihe und umgekehrt – so wird wieder ausgeschlossen, dass die LED nur falsch herum angeschlossen gewesen ist. Ansonsten auch den festen Sitz der LED am Ende des Steckers kontrollieren. Jetzt ergibt sich ein sehr schönes Bild – ein stimmungsvoll beleuchtetes und romantisch erscheinendes Pariser Restaurant.

Fast magisch!

Eure Meinung, Ideen und Projekte

Somit haben wir das erste Projekt zur Beleuchtung abgeschlossen. Ich hoffe das Lesen der drei Teile hat euch Spaß gemacht und ich bin nicht zu weit in die technischen Begebenheiten abgeschweift. Ich möchte mich für euer Interesse an den Artikeln bedanken, mich haben eure Kommentare unter dem letzten Beitrag ungemein gefreut und es wäre toll, hier wieder von eurem Fortschritt zu lesen. Was sind eure ersten, oder vielleicht schon nächsten Projekte?

Wenn noch Fragen bestehen oder Textpassagen unklar geblieben sind: Schreibt gerne einen Kommentar unter diesen Artikel, dann werde ich hier noch einmal nachbessern. Teilt auch gerne eure Ideen und Projekte mit der Community!

Johann Härke

Interessiert sich für LEGO Harry Potter, Modular Buildings und Beleuchtung seiner Stadt.

13 Kommentare Kommentar hinzufügen

  1. Sehr schöne und ausführliche Fortführung deiner Beleuchtungsreihe, Johann! Ich freue mich schon darauf, das in den nächsten Tagen selbst auszuprobieren (die Komponenten besitze ich schon, ich hatte nur noch keine Zeit, mich weiter damit zu beschäftigen), um dann das eine oder andere MOC beleuchten zu können.
    Wenn ich es richtig verstehe, hast du für den Gastraum zwei gelbe LEDs genutzt und über denselben Port (D0) angesteuert. Sind die parallel oder in Reihe geschaltet und wie viele kann man zusammen ansteuern, ohne dass sie aufgrund fehlender Spannung / fehlenden Stroms zu schwach leuchten? Oder gibt der Mikrocontroller immer genau so viel Spannung aus wie benötigt wird?

  2. Hi würdest du auch beschreiben mit wlan funktion.? So das man eventuell über eine app die lego Modelle einzeln ein oder ausschalten kann.

  3. Vielen Dank für Deine detaillierten Einblicke in die Welten des Programmierens und Verkabelns, Johann! Zwar kann ich mir aktuell nicht vorstellen, selbst in Sachen Licht und Lego aktiv zu werden, da ich den Gedanken nicht auf Anhieb entspannend finde, aber nun habe ich den Eindruck, ich könnte dank Deiner Anleitung jederzeit loslegen, sobald sich das änderte.

  4. Hallo Johann,

    vielen Dank für den 3. Teil Deiner Beleuchtungsreihe! Wieder sehr informativ! Einen gewissen Respekt habe ich schon vor dieser Umsetzung, aber vielleicht traue ich mich bei Zeiten auch einmal daran!

    Also, vielen Dank! Freue mich ggf. auf weitere Tipps in dieser Richtung!

  5. Moin Moin lieber Johann,
    sehnlichst habe ich auf Teil 3 Deines Berichts gewartet.
    Jetzt kann und möchte ich sagen. das Warten hat sich gelohnt.
    Mein Plan war nächste Woche mit dem Aufbau meiner Weihnachtslandschaft zu starten und diese zu beleuchten. Nun kann es pünktlich losgehen und ich werde meine Woche Urlaub mit LEDs und Weihnachtsdorf verbringen können. Gestern Abend habe ich direkt deinen Sketch in die beiden Hogsmead Häuser eingebaut und muss sagen, ich fürs erste begeistert.
    Ich hoffe du schaust hier öfter mal vorbei, denn es sind noch nicht alle meine Fragen beantwortet.
    Alles in allem aber erst einmal tusend tak für Deine Mühe und Inspiration zu diesem Thema.
    Viele Grüße aus Flensburg
    Sören

    • Ich gucke auf jeden Fall hin und wieder rein. Und es freut mich natürlich ganz besonders zu hören, dass der Sketch schon erfolgreich eingesetzt worden ist.

  6. Hallo Johann,
    das ist wirklich eine super Anleitung geworden! Vielen Dank dafür. Ich habe alles soweit nachgebaut, aber ich habe das Gefühl, dass die LEDs zu schwach leuchten. Woran kann das liegen? Als Widerstand habe ich 100 Ohm eingesetzt. Selbst als ich testweise den Widerstand weggelassen habe, wurden die LEDs nicht wesentlich heller.
    Vielleicht kann mir da jemand helfen?
    Gruß,
    Andy

    • Hallo Andy. Tatsächlich straheln die LEDs nicht bombastisch hell. Aber ich habe immer sehr gute Effekte erzielt, wenn ich sie direkt über die Fenster meiner LEGO-Häuser gesetzt habe. Also nicht mittig unter die Decke, wie man es bei einem normal bewohnten Zimmer machen würde. Und die weißen, grünen und blauen sind deutlich heller als gelb+rot. Weiß kann auch über transparente LEGO-Steine “gefärbt” werden.

  7. Danke, dass Du das mal für die “Neuen” im Elektronikbereich heruntergebrochen hast. Vielleicht sehen wir dann ja mehr beleuchtete Modelle in der Zukunft.

    Ich werde jedenfalls sehen, dass ich meine neue Stadt komplett beleuchte. Wobei ich noch ein Ass im Ärmel habe: Nano-Litze. Drähte, die so fein sind, dass man sie zwischen zwei aufeinander gesteckten Steinen laufen lassen kann, ohne dass sie groß auftragen. Die haben 0,014mm², reichen dann aber auch nur für eine LED. Nachteil: Man muss sie an der LED und am Stecker anlöten. Dafür kann man aber ein ganzes Bündel z.b. durch so ein 3mm Technik-Rohr laufen lassen.

  8. Moin Johann, super Anleitungen. Werde das mal ausprobieren, habe schon lange mit dem Thema geliebäugelt. Jetzt wird’s ernst. Echt, dickes Lob!!! Freue mich auf die Teile 4, 5, 6 …

  9. Moin,
    ich finde deine Reihe inspirierend für meine Beleuchtungsarbeit. Ich benutze einen Nano mit einem Shift Register und zusätzliche Ausgänge am Arduino um mittels PWM Feuer zu simulieren. Aber deine Beiträge waren bisher immer eine gute Grundlage für mich. Wäre schön wenn noch mehr solche Beiträge kommen würden.
    Eine kleine Frage hätte ich zu den Steckern an den LED’s, wie hast du das gelöst? Sind das nicht einfache “female” Breadboard Stecker? Rutschen die LED’s da nicht raus?!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert