Viele LEDs mit Arduino steuern – WS2812

Wenn man LEDs mit Arduino steuern möchte, stößt man schnell an die Grenzen der verfügbaren Kanäle. Wenn es RGB-LEDs sein sollen, geht das sogar noch schneller. Das Arduino UNO kann direkt nur zwei RGB-LEDs steuern, da diese jeweils drei analoge Kanäle brauchen (rot, grün, blau).

Abhilfe schaffen da LEDs mit integrierten Controllern, z.B. dem WS2812. Diese LEDs gibt es in unterschiedlichen Bauformen, von der 5mm LED bis zum LED-Streifen. Adafruit hat eine eigene Serie dazu entwickelt, die NeoPixel heißt.

LEDs

Arduino WS2812 LED 5mm
Jede LED mit WS2812 Controller verfügt über vier Anschlüsse. 5V+, GND, Din und Dout. Din steht für Data In, DO für Data Out. Bei den 5mm LEDs in diesem Tutorial ist die Pin-Belegung Din, 5V+, GND (längstes Beinchen), Dout.

Stromversorgung

WS2812 Stromversorgung
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

ws2812 Anschluss Arduino NeoPixel
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.

Code

Wir nutzen einfach die NeoPixel-Library von Adafruit. Man kann sie von hier (https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation) herunterladen und sie muss ins Arduinoverzeichnis in den Unterordner libraries kopiert werden. Das Verzeichnis muss von Adafruit_NeoPixel-master auf Adafruit_NeoPixel umbenannt werden. Startet man nun die Arduino-Software neu, findet man unter Datei>Beispiele>Adafruit NeoPixel>simple.

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

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:
WS2812 Produkte.

In diesem Beispiel habe ich diese LEDs verwendet:
WS2812 5mm LEDs

Inspiration

Vor einiger Zeit habe ich mal ein Glowboard mit WS2812 LED-Strips ausgestattet. Hier das Video dazu:

Referenzen

NeoPixel Best Practices
NeoPixel Library Installation

Comments are closed, but trackbacks and pingbacks are open.