Arduino: WS2812B LED’s mit FastLED ansteuern

Auch dieses Jahr neigt sich langsam dem Ende zu und Weihnachten rückt immer näher, darum sollte man sich langsam auch über eventuelle Lichterketten bemühen. Da allerdings normale Weihnachtsbeleuchtung eher öde ist, zeigen wir euch in diesem Artikel wie ihr einzeln ansteuerbare WS2812B-LED’s für diesen Zweck verwenden könnt. Neben dem Anschluss des LED-Strips an euren Arduino zeigen wir euch auch die Verwendung der FastLED-Library. 

Einkaufsliste

Um einen WS2812B-LED-Strip mittels Arduino anzusteuern, benötigt ihr neben einem Widerstand eigentlich nur noch ein passendes Netzteil – alle benötigten Komponenten findet ihr wie immer hier verlinkt:

WS2812B (1 Meter) – Preis ca. 11 Euro – siehe z.B. bei Amazon*

Arduino Nano – Preis ca. 10 Euro – siehe z.B. bei Amazon*

LED Netzteil 5V, 5A – Preis ca. 23 Euro – siehe z.B. bei Amazon*

510 Ohm Widerstand  – Preis ca. 5 Euro – siehe z.B. bei Amazon*

Litze / Verbindungskabel – Preis ca. 5 Euro – siehe z.B. bei Amazon*

Lötkolben Set – Preis ca. 25 Euro – siehe z.B. bei Amazon*

Info: Beachtet auch unsere Kaufhinweise zu WS2812B-LED-Strips, in diesem separaten Artikel gehen wir unter anderem auf die maximale LED-Länge sowie das benötigte Netzteil ein.

Schaltbild

Einen WS2812B-Strip könnt ihr in der Regel recht einfach an den Arduino Nano anschließen, zunächst verbindet das (oftmals) beiliegende Anschlussstück wie folgt: Rot auf VIN des Arduinos, Weiss / Schwarz (GND) auf GND, Grün / Blau (DI) in Kombination mit einem 510 Ohm Widerstand an den D3-Pin.

Anmerkung: Ihr solltet immer einen Widerstand zwischen 460 und 510 Ohm am Ansteuerungspin verwenden, da sonst eventuelle Spannungsspitzen die jeweils erste LED zerstören könnten.

Die beiden anderen Roten und Weissen Kabel schließt ihr an euer 5 Volt Netzteil an – damit versorgt ihr gleichzeitig sowohl den LED-Strip wie auch den Arduino mit Strom. Zum besseren Verständnis haben wir euch hier nochmal ein Schaltbild aufgeführt:

schaltplan-ws2812b-arduino

FastLED einbinden

Steckt nun euren Arduino Nano zunächst am Übergangsstück wieder aus und verbindet diesen mittels USB mit eurem Rechner. Zunächst laden wir uns dann die aktuelle FastLED-Library über GitHub herunter und installieren diese in unserer Arduino IDE.

Greift nun auf die vorhandenen Fast-LED Beispielprogramme zu, dazu öffnet ihr das Testprogramm „DemoReel100“ in der Arduino IDE.

demoreel100

Programm anpassen

Bevor wir mit dem eigentlichen Upload des Programm’s beginnen können, müssen wir zunächst einige Änderungen durchführen. Unter anderem müssen wir beispielsweise den passenden LED-Strip dem Demoprogramm zuweisen, dazu ändern wir den Eintrag „#define LED_TYPE WS2811“ auf „#define LED_TYPE WS2812B“ um:

led-type

Nun widmen wir uns dem Ansteuerungspin zu, da wir unseren LED-Strip gerne mit dem D3-Pin ansteuern möchten müssen wir auch dies entsprechend abändern:

data-pin

Weiterhin ist es notwendig die LED-Anzahl im Programm anzugeben, ein ein Meter LED-Strip hat in der Regel 30, 60 oder bis zu 144 LED’s – gebt hier dementsprechend die richtige Zahl an (wir verwenden einen WS2812B-Strip mit 60 LED’s):

num-leds

Zuletzt können wir noch die Leuchtstärke unseres LED-Strips angeben, für den Dauerbetrieb empfehlen wir euch eine Helligkeit von bis zu 60 oder 100, bei dem Maximalwert von 255 können die LED’s dagegen sehr warm werden und dadurch deutlich an Lebensdauer einbüßen:

brightness

Programm hochladen & Erster Test

Nun legen wir in den Einstellungen noch das passende Arduino Nano Board fest und wählen den richten Port aus:

board-port

Direkt danach können wir auch unser Demoprogramm auf den Arduino hochladen.

Anschließend trennen wir die USB-Verbindung und schließen den Arduino samt Verbindungsstück an den WS2812B-LED-Strip an, danach stecken wir noch das Netzteil in die Steckdose um das ganze mit Strom zu versorgen.



WS2812B LED Strips mit dem Arduino ansteuern. (Bild: Xgadget.de)
Datum:
30.10.2016, 17:24 Uhr
Autor:
Comments:
Kommentare

Schreibe einen Kommentar

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

8 Comments zu "Arduino: WS2812B LED’s mit FastLED ansteuern"

  1. Marvin sagt:

    Gibt es eine Möglichkeit mit einem taster zwischen den Animationen oder Farben zu wechseln?
    Danke
    LG Marvin

    1. schwesterstefan sagt:

      jipp du brauchst n Array deiner Funktionen (congetti etc) . die
      https://github.com/JChristensen/Button libary (den button gegen masse von nem Interrupt pin schalten

      n bissl Code

      void readbutton() {
      myBtn.read();
      if(myBtn.wasReleased()) {
      nextPattern();
      }

      Readbutton im loop aufrufen . nextpattern ruft dann die nächste funktion aus deinem Array auf .

      und zack fertig 😉

  2. Paul sagt:

    Vielen Dank für diese Anleitung 🙂

    1. JB sagt:

      auf der neusten Version gibt es das beispielprogaram nicht mehr:(

  3. Jonas sagt:

    Hallo
    Ich habe alles so wie in der Anleitung beschrieben ausgeführt, allerdings habe ich einen Arduino pro micro benutzt und dementsprechend statt dem VIN Pin den RAW Pin verwendet, doch egal wie lang der Streifen ist, es leuchtet immer nur die erste LED.
    Was könnte ich falsch gemacht haben?
    LG Jonas

  4. Daniel sagt:

    Hallo, ich bin neu in der Arduino Szene und möchte mich an gerne daran versuchen.
    Das meiste ist klar, nur habe ich noch zwei Fragen dazu.
    1. Ich habe gehört, dass man einen Kondensator mit verwenden sollte.
    2. Ist es möglich, einen 5m / 300 LED´s mobil zu betreiben? Sprich per Akkus oder Powerbank? Errechnet müsste ich 5v 18A liefern.

    Viele Grüße aus dem Schwarzwald.
    Daniel

    1. Stefan sagt:

      Hallo,
      habe bislang meine WS2812B LED’s immer ohne Kondensator betrieben – funktioniert in der Regel problemlos.
      Ganze mit 300 LED’s mit einer Powerbank zu betreiben wird in der Tat schwierig werden. Sonst müsstest du wirklich einen teuren mobilen Akku mit Schuko/Eurostecker Output (ab ca. 150 Euro) verwenden und dort noch ein passendes Netzteil anbringen. Allerdings sind diese 18 Ampere ja wirklich nur die Maximalangabe bei maximaler Helligkeit.

  5. ahjaahok sagt:

    wieso nicht direkt den 5v port am arduino benutzen?

* gesponserter Link
Blogverzeichnis - Bloggerei.de