Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Lektion 66: WS2812B RGB LED Stripe

Posted on 17. September 20186. März 2024 by Stefan Draeger

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

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

  • Bezug
  • Technische Daten des WS2812B RGB LED Stripe
  • Anschluss & Schaltung
    • Benötigte Bauelemente
  • Quellcode
  • Video
  • Fazit & Ausblick

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.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Technische Daten des WS2812B RGB LED Stripe

Die technischen Daten für ein solches LED Stripe sind 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:

  • 5x Breadboardkabel,
  • 2x Krokoklemmen,
  • 1x 220 Ohm Widerstand,
  • 1x 1000µF 6,3V Kondensator,
  • 1x Arduino UNO,
  • 1x WS2812B RGB LED Stripe,
  • 1x USB Anschlußkabel Typ A-B,
  • 1x Netzteil 5V mit min. 1A
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 auf YouTube ansehen.

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…..

4 thoughts on “Arduino Lektion 66: WS2812B RGB LED Stripe”

  1. Gerald Brückner sagt:
    1. September 2021 um 20:37 Uhr

    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

    Antworten
    1. posti sagt:
      27. November 2021 um 12:27 Uhr

      Hi

      Da die WS2812(b) recht viel Strom fressen, wird die Versorgung mit dem Leuchten-Akku wohl eher keinen langen Spielspaß geben.

      Zum Programm:
      Du kannst ja jedem Pixel sagen, in welcher Farbe Er leuchten soll.
      Du möchtest, daß dieser Ablauf sich endlos wiederholt.
      Das ‚riecht‘ nach Schrittkette/endlicher Automat/state machine. (alle 3 sollten sich finden lassen)

      Unterm Strich hast Du verschiedene Status (ist ebenfalls die Mehrzahl) und wartest eher die ganze Zeit, daß Du zum Nächsten springen darfst:

      //Library für Neopixel einbinden

      void setup() {
      // Neopixel-Setup nach Deren Beispielen
      }

      void loop() {
      static uint32_t lastmillis = 0; //Uhrzeit der letzten Aktion
      static uint16_t status = 0; //aktueller Status
      uint32_t aktmillis = millis(); //die aktuelle ‚Uhrzeit‘
      const uint32_t waitmillis = 200; //Wartezeit zwischen den Status
      if (aktmillis – lastmillis >= waitmillis) {
      //die Wartezeit ist vorbei, also zum nächsten Schritt
      lastmillis = aktmillis; //die Uhrzeit dieser Aktion merken
      bool ledhaschanged = false;
      switch (status) {
      case 0://änder irgendetwas
      ledhaschanged = true;
      break;
      case 1://änder irgendetwas
      ledhaschanged = true;
      break;
      case 2://änder irgendetwas
      ledhaschanged = true;
      break;
      case 3://änder irgendetwas
      ledhaschanged = true;
      status = 0; //wieder zurück zum Anfang
      break;
      default://hier kommen wir normal NIE hin
      status = 0;
      break;
      }
      if (ledhaschanged) {
      //stripe neu anzeigen lassen – was in der Art stripe.show();
      ledhaschanged = false;
      }
      }

      //Hier kannst Du noch weitere Funktionalität einbringen, achte darauf, NICHT blockierend zu programmieren
      //also kein delay() für Wartezeiten, benutze aktmillis.
      //Zum Merken der jeweils letzten Aktion brauchst Du jeweils eine
      //’lastmillis‘-Variable (klar mit anderm Namen) und eine Wartezeit
      //oben ist Das die waitmillis.

      //Dinge, Die sich NIE ändern, als const deklarieren – kann der Kompiler direkt im Code einbinden und braucht keinen teuren Variablen-Speicher
      //Dinge, Die Du auch beim nächsten loop()-Durchlauf noch wissen willst
      //als static declarieren – diese Variablen verbleiben im Speicher, alle Anderen
      //z.B. aktmillis, wird beim Ende von loop() zerstört.

      //Für Arduino-Fragen dürfte aber ein Arduino-Forum besser geeignet sein, als ein Blog
      //Im Forum wird’s gerne gesehen, von wo Du kommst (also Link zum Blog), ob hier ein Link zu Deinem Foren-Thread gerne gesehen wird – ich denke,
      //spricht Nichts dagegen und führt andere Hilfesuchende ebenfalsl zum Ziel.
      //und wenn’s doch nicht gerne gesehen ist, löscht der Blog(g)er den Link halt, fertsch.
      }

      Compiliert bei mir (Arduino-IDE 1.8.8, portable) mit den üblichen Warnungen zum ESP01s (Generic ESP8266 Module) – mit Dem spiele ich gerade 🙂
      Beim Uno sollte keine Warnung ect.pp. auftauchen.

      Der Sketch macht SO noch Nichts – in den verschiedenen Status steht ja Nichts drin, etwas Spielen musst Du damit halt noch selber 😉

      Antworten
  2. Dietmar Schulz sagt:
    2. September 2021 um 18:38 Uhr

    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

    Antworten
    1. Stefan Draeger sagt:
      4. September 2021 um 18:04 Uhr

      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

      Antworten

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}