Arduino Lektion 66: WS2812B RGB LED Stripe

Eine WS2812B RGB LED Stripe ist meist eine flexible, Aneinanderreihung von RGB LEDs.
Diese LEDs können einzeln adressiert werden. D.h. jede LED in dieser „Kette“ kann eine definierbare Farbe oder Zustand (AN / AUS) einnehmen.

WS2812B RGB LED Stripe
WS2812B RGB LED Stripe

Des Weiteren kann man zwischen Wasserfest (waterprof) und zwei verschiedenen Platinenfarben (weiß, schwarz) wählen.

Bezug

Die WS2812B RGB LED Stripes, gibt es in diversen Längen zu kaufen. Ich habe mir für dieses Tutorial 1 m bei ebay.de besorgt.

Technische Daten des WS2812B RGB LED Stripe

Die technischen Daten für ein WS2812B RGB LED Stripe unterschiedlich,
denn je nach Länge und somit mit steigender bzw. fallender Anzahl der LEDs steigt auch der Stromverbrauch und die Stromaufnahme.

Folgende Daten gelten für eine 1 m WS2812B RGB LED Stripe mit 30 LEDs:

  • Breite 11 mm
  • LED Typ 5050 SMD
  • Betriebsspannung 5V
  • Betriebstemperatur -20 °C bis +45 °C

Das mir vorliegende Model ist NICHT Wasserfest. Es gibt diese LED Stripes auch in Wasserfest, diese sind dann jedoch deutlich teurer.

Anschluss & Schaltung

Als Erstes wollen wir die Schaltung auf einem Breadboard aufbauen, dieses hat den Vorteil das man schnell zu einem
Ergebnis kommt und noch Änderungen vorgenommen werden können.

Benötigte Bauelemente

Für die nachfolgende Schaltung wird benötigt:

Schaltung - WS2812B am Arduino UNO
Schaltung – WS2812B am Arduino UNO

Quellcode

Hier nun ein kleines, einfaches Beispiel wie man über alle LEDs iteriert und diese in der Farbe Weiß aufleuchten lässt. Man kann theoretisch jede RGB Farbe darstellen.

Möchte man eine LED „ausschalten“ so muss man nur dieser LED die Farbe Schwarz zuordnen.

#include <Adafruit_NeoPixel.h> //Bibliothek für den betrieb des WS2812B RGB Stripe

#define NUM_PIXELS  28 //Anzahl der RGS im Stripe (Zähler beginnt bei 0)
#define PIN         6  //RGB LED Chip auf dem digitalen PIN D6
 
//Einrichten des Objektes
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUM_PIXELS, PIN, NEO_GRB + NEO_KHZ800);

//Pause zwischen den wechseln der Pixel
int pause = 125;
 
void setup() {
  //Begin der Kommunikation
  pixels.begin();
 
}
 
void loop() {
  //Schleife über die RGB Pixel des Stripe
  for(int i=0;i<NUM_PIXELS;i++){
   //Setzen der Farbe weiß auf jeden Pixel
   pixels.setPixelColor(i, pixels.Color(255,255,255));
   //RGB Stripe aktualisieren
   pixels.show();
   //kleine Pause
   delay(pause);
   //RGB Pixel wieder ausschalten (Farbe Schwarz setzen)
   pixels.setPixelColor(i, pixels.Color(0,0,0));
  }
}

Video

RGB Stripe am Arduino UNO
Dieses Video ansehen auf YouTube.

Fazit & Ausblick

Den RGB Stripe habe ich günstig über einen Anbieter bei ebay.de gekauft. Und die erste LED war defekt, das hatte etwas Arbeit gemacht es herauszufinden, um dann doch noch den Stripe zu betreiben. Danach hatte jedoch alles reibungslos geklappt.

Als Nächstes werde ich nun ein kleines Projekt mit dem RGB Stripe durchführen. Welches die nächsten Tage auf diesem Blog veröffentlicht wird.

To be contrinue…..

5 Kommentare

  1. Hallo Stefan,
    ich habe einen Arduino Uno und 10 ws2812 geschenkt bekommen. Habe auch schon einige Beispiele ausbropiert und sie funktionieren. Nun habe ich mir überlegt,was mache ich damit. Ich habe drei Solar LED Kugeln im Garten, die aber nicht mehr so richtig funktionieren, die möchte ich damit bestücken. Verdrahtung ist kein Proplem, aber ich habe noch keinen Ansatz für ein Programm gefunden. Sie sollen in drei Farben leuchten und dann in langsamen Schritten die Farben gegenseitig ändern (Rot langsam gegen 0 und langsam hoch in Blau, Grün gegen Rot , Blau gegen Grün im zwei Minuten Takt. Wie müsste das Programm aussehen. Habe schon die diversesten Programme kombieniert, komme aber zu keinem Ergebniss. Bin eben Anfänger.
    Vielen Dank
    Gerald

  2. Ich bin absoluter Anfänger und habe eine Frage, kann man mit dem Arduino und einem WS2812 Led Streifen 15 Led´s von 1-15 nacheinander anschalten und sterben sollen, solange die Spannung abgeschaltet wird. Ich brauche es für eine Leuchtreklame.
    Für eure Hilfe bin ich sehr Dankbar
    Liebe Grüße Dietmar

    1. Hi,

      das ist recht einfach durch die gegebene Anzahl von 15 LEDs, kommt man damit sogar mit nur einem digitalen Pin aus.
      Ich werde mich dem einfach mal annehmen und einen kleinen Beitrag dazu verfassen.

      Gruß,

      Stefan Draeger

Kommentar hinterlassen

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