Nordlandbahn H0

LED-Beleuchtung (WS 2812 B) preiswert für 5€ mit dem ATtiny steuern!

Sehr günstig eine ausgefeilte Gebäude-Beleuchtung basteln? Oder andere Sachen auf der Modellbahn intelligent und abwechslungsreich ansteuern? Mit einem ATtiny kein Problem und sehr kostengünstig umsetzbar! Ich zeige euch wie!
Ob ich alles richtig mache, weiß ich nicht…
WS2812 programmierbarer LED-Stripe: https://amzn.to/3uwENUc
Arduino Experimentier-Kit: https://amzn.to/3ryIw1W
ATtiny45 (5er-Pack mit Fassung): https://amzn.to/3HC2kXM
ATtiny85: https://amzn.to/3I1valF
IC-Fassungen (8-pol, 5er Pack): https://amzn.to/3JpRVPt
Brückengleichrichter (10er Pack) https://amzn.to/3HyDjwx
Sortiment Spannungsregler: https://amzn.to/35WK0ur
Elektronik-Experimentier-Set: https://amzn.to/3uwwrfx

Den Sketch zum Download gibt es hier:

Lichtsteuerung Mehrparteien-Wohnhaus
Lichtsteuerung Mehrparteien-Wohnhaus

25 Gedanken zu „LED-Beleuchtung (WS 2812 B) preiswert für 5€ mit dem ATtiny steuern!

  1. Markus Baumann

    Hallo Knut,
    das ist alles sehr beeindruckend, Respekt !
    Ja das ist genau mein Thema : von der Teppichbahn zur Modelbahn.
    nach über 30 Jahren komme ich jetzt mal dazu meine Eisenbahn aufzubauen.
    Mit Schrecken habe ich festgestellt was sich da getan hat ….. ui ui ui …. 🙂
    Ich habe mir frecherweise mal den Sketch von der Mehrfamilien – Beleuchtung runtergeladen.( Danke )
    Mal sehen wie ich damit zurecht komme. Dieses Beleuchtungsvideo ist ja der Hammer.
    Ich komme aus der Spur N Ecke ( Ich hoffe das stört nicht )
    Viele Grüße aus Rheinland Pfalz
    Markus

  2. Andreas Metag

    Ja einen schönen guten morgen.

    Ich bin heute beim stöbern im Internet auf Ihre Anleitung und Sketch für das für das Wohnhaus gestoßen.
    Das hat mir sehr gut gefallen.
    Nun habe ich mir den Sketch runtergeladen, ich kann aber keinen Schaltplan für den attiny nicht finden
    Können sie in mir bitte zukommenlassen.

    Mfg Andreas Metag

  3. Frank

    Hallo Deine Beleuchtung sieht wirklich sehr gut aus. habe mir auch mal erlaubt den Sketch runterzuladen, leider bekomme ich beim überprüfen immer diesen Fehler angezeigt. Weisst Du vielleicht woran das liegt habe ja nix daran geändert.
    LG Frank

    /Users/franksmac/Downloads/Wohnhaus/Wohnhaus.ino:9:10: fatal error: Adafruit_NeoPixel.h: No such file or directory
    #include
    ^~~~~~~~~~~~~~~~~~~~~
    compilation terminated.

    exit status 1

    Compilation error: Adafruit_NeoPixel.h: No such file or directory

    1. Analog H0 Artikelautor

      Du musst die „Adafruit Neopixel“-Bibliothek installieren, damit Du die LEDs ansteuern kannst. Werkzeuge -> Bibliotheksverwalter… und nach der Bibliothek suchen.

        1. Analog H0 Artikelautor

          Adafruit Neopixel ist nicht zu finden? Glaub ich nicht.
          Von „Adafruit Neopixel 2“ war nie die Rede, woher kommt das? Ich sehe da „#include <Adafruit_NeoPixel.h>“ im Quelltext.

      1. Henryk

        Ich suche die Adafruit Neopixel 2 Bibliothek. Wenn ich Adafruit Neopixel eingebe, finde ich mehrere Dateien. Keine hat die Endung Neopixel 2. Ich bin blutiger Anfänger.

        1. Analog H0 Artikelautor

          „Adafruit Neopixel“ ist gemeint. Die ‚ 2″ ‚ war ein Tippfehler, den ich eigentlich korrigiert hatte, aber die falsche Schreibweise ist im Cache hängengeblieben. Habe gerade den Cache geleert. Dann hat sich das ja geklärt.

  4. hhuelder

    Hallo,

    ich finde den Sketch super. Allerdings möchte ich die Lichtfarbe ändern, weil mir das Weiß zu kalt ist. Leider bin ich was das Programmieren angeht noch ein ziemlicher Noob. Jedenfalls finde ich nirgendwo die Möglichkeit, eine andere Lichtfarbe einzustellen. Über Hilfe würde ich mich sehr freuen.

    Und dann hätte ich gleich noch ne zweite Frage: Kann ich irgendwo oder irdendwie festlegen, dass nur eine oder 2 bestimmte LEDs als TV flimmern?

    Vielen Dank

    hhuelder

    1. Analog H0 Artikelautor

      Jede LED ist individuell ansteuerbar:

      pixels.setPixelColor(i, pixels.Color(r, g, b));

      i=Nummer der LED im Strang, beginnen bei 0 bis (Anzahl LEDS -1), also z.B. bei 10 LEDs im Strang wird von 0 bis 9 gezählt.
      r=Intensität Rotanteil (0..255)
      g=Intensität Grünanteil (0..255)
      b=Intensität Blauanteil (0..255)

      Ich hab mit
      #define ROOM_BRIGHTNESS 16 //Helligkeitseinstellung der LED’s bei Raumbeleuchtung
      eine sehr gemässigte Helligkeit eingestellt, weil die LEDs wirklich sehr hell sind.
      die setze ich im Sketch auf weiß:
      pixels.setPixelColor(r, pixels.Color(ROOM_BRIGHTNESS, ROOM_BRIGHTNESS, ROOM_BRIGHTNESS)); //Leuchstärke der lED Farben festlegen
      Willst Du hier ein wärmeres Licht, dann muss Du das Farbmischungsverhältnis nach gelb verschieben und nicht alle Farben auf denselben Wert setzen. Steht Dir frei.

      Willst Du das TV-flimmern nur in bestimmten Räumen haben, in Zeile 77-80 den Code

      // bei 4-5 geht der Fernseher an
      else {
      Room[r] = TV_AN;
      }

      ersetzen durch

      // bei 4-5 geht der Fernseher an
      else {
      if((r==1)||(r==2)){
      Room[r] = TV_AN;
      }
      }

      Das würde nur auf den LEDs 2 oder 3 das TV-Flimmern erlauben. Das kannst Du durch weitere Oder-Vergleiche erweitern mit ||(r==x), eleganter und lesbarer wird’s dann aber mit einem switch()-Statement

  5. hhuelder

    Hallo und danke. Das hilft mir sehr.

    ROOM_Brightness habe ich übrigens auf 8 setzen müssen, bei 16 war es mir viel zu hell. Kann es sein, dass das an meiner Version des WS2812 liegt? Ich habe ws2812e.

  6. Detlef Klostermann

    Hallo, super Arbeit.
    Ich habe das Sketch runter geladen, würde es aber gerne auf
    einem ESP32 laufen lassen. Funktioniert das ?

  7. Henryk Foit

    Leider bringe ich es nicht fertig die Daten auf den Atiny 85 zu übertragen. Folgender Fehler erscheint:

    H:\Eisenbahn im Keller\Wohnhaus\Wohnhaus.ino: In function ‚void setup()‘:
    H:\Eisenbahn im Keller\Wohnhaus\Wohnhaus.ino:39:3: error: ‚Serial‘ was not declared in this scope
    Serial.begin(9600);
    ^~~~~~
    H:\Eisenbahn im Keller\Wohnhaus\Wohnhaus.ino:39:3: note: suggested alternative: ‚Stream‘
    Serial.begin(9600);
    ^~~~~~
    Stream

    exit status 1

    Compilation error: ‚Serial‘ was not declared in this scope

      1. Henryk Foit

        auf den genannten Seiten bin ich schon seit einigen Tagen unterwegs. Ich verstehe leider nicht viel englisch mit meinen 67 Jahren.

        1. Analog H0 Artikelautor

          Das ist dann natürlich schlecht, wenn man in die Microchip-Programmierung einsteigen will. Ich kann leider nicht täglich prüfen, ob der Sketch noch durchkompiliert, da ist Eigeninitiative gefragt.
          Die Quelltexte hier sind „as is“, da kann ich nicht viel Unterstüzung leisten. Wenn da Tippfehler sind, ist es was anderes (wie z.B. das Problem mit „Neopixel 2“), aber ich kann nicht Stunden drauf verwenden, über Kommentarzeilen Unterstützung zu leisten. Das ist sehr zeitaufwändig und nicht zielführend. Ich zeige hier mein Hobby, es besteht kein Anspruch darauf, daß mein Bastelkram woanders auch funktioniert.

          Ich benutze die ATTiny-Cores von https://drazzy.com/package_drazzy.com_index.json

          Kompiliert ohne Probleme.

          ein

          #include <Arduino.h>

          am Anfang sollte das Problem aber auch beheben.

          Mehr kann ich nicht für Sie tun.

          1. Henryk Foit

            Trotzdem vielen Dank für Ihre Bemühungen.

            ein
            #include <Arduino.h>
            am Anfang sollte das Problem aber auch beheben. An welcher Stelle

  8. Henryk Foit

    Ich finde ihre Youtubeseiten trotz meiner Unfähigkeit sehr gelungen und werde weiterhin ihre Arbeit mit dem größten Interesse verfolgen. Den Rest werde ich versuchen in einem Ardurinoforum zu lösen.

    1. Analog H0 Artikelautor

      Alternativ die Zeilen

      // Initialisierung des Zufallsgenerators
      Serial.begin(9600);
      randomSeed(analogRead(0));

      einfach löschen. Da wird sowieso nur der Zufallsgenerator durch auslesen des Rauschens auf dem Analog-Eingang initialisiert. Ist nicht so wichtig, sollte auch ohne das funktionieren.

      Was ist denn bitte „am Anfang“ nicht zu verstehen? Der Beginn des Quellcodes…

  9. Henryk Foit

    Ich habe es nach mehreren Versuchen geschafft.
    Zuerst den Sketch ArduinoISP auf den UNO. Das wurde nirgends erwähnt.
    Ich bin gerne Zuschauer auf ihrer Youtubeseite.