WS2812 – Der einfachste Weg, viele LEDs mit Arduino steuern

Bei den WS2812 LEDs handelt es sich um adressierbare RGB-LEDs. Sie verfügen über einen integrierten Chip und belegen daher nur einen einzigen digitalen Output des Arduino-Boards.

Wenn man LEDs mit Arduino steuern möchte, dann stößt man schnell an die Grenzen der verfügbaren Kanäle. Gerade RGB-LEDs benötigen jeweils gleich drei wertvolle analoge Kanäle (rot, grün, blau).

Die WS2812-LEDs bieten dafür eine elegante Lösung. Sie verfügen über einen integrierten Controller. Ein Datensignal vom Arduino-Board bestimmt dann, in welcher Farbe der Controller die LED leuchten lassen soll. Darüber hinaus lassen sich viele WS2812-LEDs hintereinander schalten.

WS2812 LEDs

WS2812 Arten


Jede LED mit WS2812 Controller verfügt über vier Anschlüsse. 5V+, GND, DI und DO. DI steht für Data In, DO für Data Out. Es gibt unterschiedliche WS2812 Strips und LEDs. Die Belegung der Anschlüsse kann variieren.

Stromversorgung

Arduino WS2812 Schaltplan


Zuerst sehen wir uns die Stromversorgung an. Jede WS2812 LED benötigt bis zu 60mA. Es ist also ratsam, ein Netzteil zu verwenden. Dieses Netzteil sollte mit einem Elektrolyt-Kondensator (1000uF, 6,3V) unterstützt werden. Der GND des Netzteils und der GND des Arduinos müssen verbunden werden.

Datenanschluss

Nun kann man einfach einen digitalen Kanal des Arduinos über einen Widerstand (300 – 500 Ohm) mit dem Din der ersten LED verbinden. Ihr Dout wird dann wiederum mit dem Din der nächsten LED verbunden usw. Der Widerstand ist nur vor der ersten LED nötig.

Funktionsweise

WS2812 Funktionsweise


Über einen digitalen Pin des Arduinos werden Farbinformationen in einer Sequenz übertragen. Die erste LED nimmt den ersten Farbwert und leuchtet entsprechend. Die restlichen Informationen werden über den DO-Pin an die nächste LED übertragen.

Code

Um die WS2812 LEDs mit Arduino steuern zu können, benötigst du die NeoPixel-Library von Adafruit. Öffne in der Arduino IDE (Software) das Menü Sketch>Bibliotheken einbinden>Bibliotheken verwalten … und suche im Suchfeld nach NeoPixel. Installiere die Adafruit NeoPixel-Library von Adafruit in der aktuellen Version. Unter Datei>Beispiele>Adafruit NeoPixel>simple findest du folgendes Beispiel:

#include <Adafruit_NeoPixel.h>
#include <avr/power.h>

#define PIN            6
#define NUMPIXELS      10

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500;

void setup() {
  pixels.begin();
}

void loop() {
  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(255,255,255)); // Moderately bright green color.
    pixels.show(); // This sends the updated pixel color to the hardware.
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
}

Jetzt kann man einfach NUMPIXELS auf die Menge der LEDs einstellen, wie man verwenden will. Über den Befehl

pixels.setPixelColor(ledNumber, pixels.Color(255,255,255)); 

lässt sich nun jede gewünschte Farbe (pixels.Color(255,255,255)) auf jede LED (ledNumber – Position der LED in der Reihe) anwenden.

Ich empfehle, sich auch mal das Beispiel>strandtest anzusehen. In diesem Beispiel sind schon ein paar Animationsfolgen eingebaut.

Woher bekommt man die Bauteile?

Kaufen kann man NeoPixel direkt bei Adafruit und man findet auch einiges bei Amazon*.

Im unteren Beispiel habe ich diese 5mm LEDs* verwendet.

ws2812 Anschluss Arduino NeoPixel

Übrigens: Die WS2812 LEDs gibt es auch als 5mm LEDs. Die Pin-Belegung ist DI, 5V+, GND (längstes Beinchen), DO.

Inspiration

Und was machen wir jetzt mit diesem Wissen? Hier ein Paar Projekte mit WS2812 LEDs:

Arduino Valentinstag Romantisches Wandlicht
Arduino Valentinstag: Romantisches Wandlicht
Arduino Halloween Kürbis
Halloween-Kürbis mit WS2812-LED-Augen
Glowboard
Glowboard mit WS2812 LED-Strips

Hier noch ein Video zum Glowboard:

Wir benötigen Ihre Zustimmung um den Inhalt von YouTube laden zu können.

Mit dem Klick auf das Video werden durch den mit uns gemeinsam Verantwortlichen Youtube [Google Ireland Limited, Irland] das Video abgespielt, auf Ihrem PC Skripte geladen, personenbezogene Daten erfasst und Cookies gespeichert. Mit Hilfe der Cookies ist Google in der Lage, die Aktivitäten von Personen im Internet zu verfolgen und Werbung zielgruppengerecht auszuspielen. Weitere Informationen finden Sie hier.

PGlmcmFtZSB0aXRsZT0iV2llIGJhdXQgbWFuIGVpbiBHbG93Ym9hcmQgbWl0IEFyZHVpbm8/IiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM2MCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC80RXZyVmo0Y05Hbz9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPg==

Referenzen

NeoPixel Best Practices
NeoPixel Library Installation


ishiro präsentiert buch

Wow! Ich hoffe, der Beitrag hat dir gefallen. Wenn ja hab ich was für dich. Das neue E-Book von StartHardware! Darin findest du die beliebtesten Projekte von StartHardware und vieles mehr!

Wenn du noch tiefer einsteigen willst, empfehle ich Dir das Buch: Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit wirst Du zum Arduino-Profi!

Und falls du weitere Fragen hast, stelle sie gern hier im Arduino-Forum :-)

2 thoughts on “WS2812 – Der einfachste Weg, viele LEDs mit Arduino steuern

Comments are closed.