LED Strip Bricklet

Bemerkung

Das LED Strip Bricklet ist abgekündigt und wird nicht mehr verkauft. Als Ersatz wird das LED Strip Bricklet 2.0 empfohlen.

Features

  • Steuert bis zu 320 RGB oder 240 RGBW LEDs
  • Alle LEDs können unabhängig voneinander geschaltet werden
  • Aktualisierungsrate von bis zu 100Hz für jede LED möglich

Beschreibung

Das LED Strip Bricklet kann genutzt werden um LED Streifen und LED Pixel zu steuern, die mit einem WS2801, WS2811, WS2812/SK6812 (NeoPixel RGB), SK6812RGBW (NeoPixel RGBW), LPD8806 oder APA102 (DotStar) LED-Treiber ausgestattet sind. Es ist möglich 320 RGB oder 240 RGBW LEDs (960 einzelne LEDs) unabhängig voneinander über ein Brick zu steuern.

Mit Hilfe der API können alle LEDs gleichzeitig mit einer festen Aktualisierungsrate von bis zu 100Hz gesteuert werden. Ein Anwendungsbeispiel findet man im Starterkit: Blinkenlights: Video

Brick Daemon 2.0.10 oder neuer wird für diese Bricklet empfohlen.

Technische Spezifikation

Eigenschaft Wert
Unterstütze LED-Treiber
WS2801, WS2811, WS2812/SK6812 (NeoPixel RGB),
SK6812RGBW (NeoPixel RGBW), LPD8806 und APA102 (DotStar)
Stromverbrauch 1mA (inaktiv), 4mA (aktiv)
   
Auflösung 8Bit pro LED
Maximale Anzahl LEDs 960 (320 RGB oder 240 RGBW LEDs)*
Maximale Aktualisierungsrate 100 Aktualisierungen pro Sekunde
   
Abmessungen (B x T x H) 30 x 30 x 12mm (1,18 x 1,18 x 0,47")
Gewicht 10g

* mit einem Master Brick, 480 mit anderen Bricks

Ressourcen

Erster Test

Um ein LED Strip Bricklet testen zu können, müssen zuerst Brick Daemon und Brick Viewer installiert werden. Brick Daemon arbeitet als Proxy zwischen der USB Schnittstelle der Bricks und den API Bindings. Brick Viewer kann sich mit Brick Daemon verbinden, gibt Informationen über die angeschlossenen Bricks und Bricklets aus und ermöglicht es diese zu testen.

Als nächstes muss das LED Strip Bricklet mittels eines Bricklet Kabels mit einem Brick verbunden werden. Anschließend kann ein LED Streifen oder LED Pixel an das Bricklet, wie weiter unten beschrieben, angeschlossen werden.

Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "LED Strip Bricklet" auftauchen. Wähle diesen Tab aus. Wenn alles wie erwartet funktioniert, kann nun ein LED Steifen gesteuert werden.

LED Strip Bricklet im Brick Viewer

Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle listet die API des LED Strip Bricklet und Beispiele in verschiedenen Programmiersprachen auf.

WS2801, WS2811 und WS2812

Es werden LED Streifen und Pixel unterstützt, die mit dem WS2801, WS2811 oder WS2812 Treiber ausgestattet sind. Im Weiteren bezieht sich WS28xy auf alle diese drei Treiber.

Der verwendete Treiber muss über Brick Viewer oder die set_chip_type() Funktion des LED Strip Bricklets eingestellt werden. Für WS2811 und WS2812 wird LED Bricklet Plugin Version 2.0.2 oder neuer benötigt.

Der WS28xy Treiber kann bis zu drei LEDs unabhängig voneinander steuern. Typischerweise werden RGB LEDs, die in einem Gehäuse zusammen untergebracht sind, gesteuert. Der WS28xy Treiber wird über einen 3- oder 2-Leiter Datenbus, bestehend aus einer Datenleitung, einer Taktleitung (nur WS2801) und Masse als Referenz, gesteuert. Jeder Treiber verfügt dazu über einen Bus-Eingang und einen Bus-Ausgang, so dass die Treiber in Serie hintereinander geschaltet werden (Daisy Chain). Jeder Bus-Eingang der WS28xy Treiber ist entweder mit einem steuernden Gerät (wie z.B. das LED Strip Bricklet) oder mit einem Bus-Ausgang von einem vorherigen WS28xy Treiber verbunden. Da die WS28xy Treiber in Serie geschaltet werden müssen, darf jeder Bus-Ausgang höchstens mit einem Bus-Eingang verbunden werden. Der Bus wird beginnend beim ersten WS28xy Treiber indiziert (API Index 0).

LED Strip with WS2801

Das obige Foto zeigt einen typischen WS2801 LED Steifen. Jedes Modul des Streifens ist mit einem WS2801 Treiber und einer davon angesteuerten RGB LED ausgestattet. Die Signale sind jeweils auf der Eingangsseite (IN) und auf der Ausgangsseite (OUT) gekennzeichnet: 5V, CK (Clock), SD (Serial Data) und GND. Im Gegensatz zum WS2801 haben die WS2811 und WS2812 Treiber keine Taktleitung.

Anschlussmöglichkeit

Das nachfolgende Bild stellt die Schnittstellen des LED Strip Bricklets dar:

LED Strip Bricklet Interface Description

Wie im WS28xy Abschnitt beschrieben, unterstützt das Bricklet LED Steifen und Pixel, die mit WS2801, WS2811 oder WS2812 Treiber-ICs ausgestattet sind. Die mit "Output" beschrifteten Klemmen müssen mit dem Eingang des ersten WS28xy Treiber-ICs verbunden werden.

Die Klemme ist mit folgenden Signalen belegt:

  • "DAT" ist die Datenleitung zum WS28xy Chip. Sie muss mit dem Dateneingang des ersten WS28xy Chips verbunden werden. Leider gibt es keine allgemeingültige Beschriftung für LED Steifen und Pixel. Manchmal ist das Signal mit SD (Serial Data) oder DI (Data Input) beschriftet. Es ist ebenfalls möglich, dass nur der Ausgang beschriftet ist (z.B. DO, Data Output). Bei der anderen Seite muss es sich also folglich um den Eingang handeln.

  • "CLK" ist die Taktleitung zum WS2801 Chip. Sie muss mit dem Takteingang des ersten WS2801 Chips verbunden werden. Dieser Eingang ist typischerweise mit CLK, CK oder CI (Clock Input) beschriftet. Falls nur der Ausgang beschriftet ist findet man Beschriftungen wie CO (Clock Output).

    Die WS2811 und WS2812 Treiber-ICs haben keine Taktleitung, für diese muss die "CLK" Klemme offen gelassen werden.

  • "-" ist die Masseleitung. Masse ist notwendig um eine Spannungsreferenz zu den DAT und CLK Signalen zu besitzen.

  • "+" ist der Versorgungsspannungs-Ausgang. Es ist mit dem "+" Signal der "Input" Klemme verbunden und sollte nicht benutzt werden um LED Steifen oder Pixel zu versorgen. Die Streifen oder Pixel sollten direkt von der Stromquelle aus versorgt und dieses Signal nicht angeschlossen werden.

Die Eingangsklemme verfügt über zwei Signale:

  • "+" ist der Spannungsversorgungs-Eingang. Dieser kann mit der Stromversorgung für die LEDs verbunden werden um die Versorgungsspannung zu messen. Wird dies nicht benötigt, so kann die Klemme offen bleiben.
  • "-" ist die Masseleitung. Sie ist intern mit der Masse von der "Output" Klemme verbunden.

RAM Beschränkungen

Das LED Strip Bricklet benötigt viel RAM um die Farbinformationen für die LEDs zu speichern. Normalerweise könnte das LED Strip Bricklet, auf Grund des begrenzten RAMs pro Bricklet, nur bis zu 80 RGB oder 60 RGBW LEDs steuern.

Um diese Beschränkung zu umgehen kann das LED Strip Bricklet den ungenutzten RAM von nicht genutzten Bricklet Ports verwenden. Dies erlaubt es bis zu 320 RGB oder 240 RGBW LEDs mit einem Master Brick und einem LED Strip Bricklet zu steuern. Wie beschrieben können diese Bricklet Ports dann aber nicht von anderen Bricklets verwendet werden.

Die maximale Anzahl von LEDs ergibt sich wie folgt:

Freie Bricklet Ports Maximale Anzahl an RGB LEDs Maximale Anzahl an RGBW LEDs
0 80 60
1 160 120
2 240 180
3 320 240

WS2812B LED Steifen

Es existiert keine allgemeine farbliche Kennzeichnung für LED Streifen. Insbesondere verstoßen die Farben oftmals gegen Konventionen. In diesem WS2812B LED Streifen Beispiel ist der rote Draht 5V, grün die Datenleitungleitung und der weiße Draht ist Masse.

Als erstes wird die Datenleitung des ersten LED Streifens und Masse der Spannungsversorgung mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Dateneingang des ersten Streifen mit Datenausgang des LED Strip Bricklets verbunden wird.

Falls die Spannung der Versorgung gemessen werden soll, müssen die 5V der Stromversorgung mit dem LED Strip Bricklet verbunden werden. Es können weitere LED Streifen in Reihe (hintereinander) an den ersten LED Streifen angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).

Es ist nicht ausreichend die LED Streifen nur an deren Anfang zu versorgen. Wir empfehlen mindestens alle 2 Meter neu einzuspeisen. Dazu kann zum Beispiel pro Einspeisepunkt ein eigenes Kabel zur Stromversorgung geführt werden. Somit wird der elektrische Widerstand reduziert und Leitungsverluste minimiert. Das nachfolgende Bild zeigt ein Beispiel.

LED Strip Bricklet Verkabelung für WS2812B LED Streifen

WS2801 LED Steifen

Es existiert keine allgemeine farbliche Kennzeichnung für LED Streifen. Insbesondere verstoßen die Farben oftmals gegen Konventionen. In diesem WS2801 LED Streifen Beispiel ist der schwarze Draht 5V, grün die Taktleitung, rot die Datenleitung und der blaue Draht ist Masse.

Als erstes werden die Takt- und Datenleitung des ersten LED Streifens und Masse der Spannungsversorgung mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Takt- und Dateneingang des ersten Streifen mit dem Takt- und Datenausgang des LED Strip Bricklets verbunden wird.

Falls die Spannung der Versorgung gemessen werden soll, müssen die 5V der Stromversorgung mit dem LED Strip Bricklet verbunden werden. Es können weitere LED Streifen in Reihe (hintereinander) an den ersten LED Streifen angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).

Es ist nicht ausreichend die LED Streifen nur an deren Anfang zu versorgen. Wir empfehlen mindestens alle 2 Meter neu einzuspeisen. Dazu kann zum Beispiel pro Einspeisepunkt ein eigenes Kabel zur Stromversorgung geführt werden. Somit wird der elektrische Widerstand reduziert und Leitungsverluste minimiert. Das nachfolgende Bild zeigt ein Beispiel.

LED Strip Bricklet Verkabelung für WS2801 LED Streifen

LED Pixel

Die Verbindung zu LED Pixeln ist sehr ähnlich zur Verbindung zu LED Streifen. Es existiert ebenfalls keine allgemeine farbliche Kennzeichnung. Im nachfolgenden Beispiel ist der rote Draht 5V, blau ist Masse, die Taktleitung (nur WS2801) ist grün und die Datenleitung ist weiß.

Die Takt- und Datenleitung vom ersten LED Pixel Bündel, sowie Masse von der Stromversorgung werden mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Takt- (nur WS2801) und Dateneingang des ersten Pixels mit dem Takt- (nur WS2801) und Datenausgang des LED Strip Bricklets verbunden wird. Soll die Versorgungsspannung gemessen werden, muss auch 5V von der Stromversorgung an das Bricklet angeschlossen werden. Sollen mehrere Bündel verwendet werden, so können diese in Reihe (hintereinander) an das erste Bündel angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).

Typischerweise besitzt jedes Pixel Bündel Drähte zur Stromversorgung am Anfang und Ende des Bündels. Diese sollten über zusätzliche Kabel mit der Stromversorgung verbunden werden. Benachbarte Drähte können auch zusammengefasst werden. Diese Maßnahme reduziert den elektrischen Widerstand und minimiert die Leitungsverluste der Stromversorgung.

LED Strip Bricklet Verkabelung für Pixel

Feste Aktualisierungsrate

Um eine flüssige Animation zu erreichen wird eine feste Aktualisierungsrate benötigt. Eine feste Aktualisierungsrate kann einfach mit einer korrekt konfigurierten Framelänge und dem FrameRendered Callback erreicht werden. Die Framelänge stellt die Zeit in ms dar, die zwischen zwei Frames verstreicht. Der FrameRendered Callback wird ausgelöst nachdem ein neues Frame auf die LEDs übertragen wurde.

Wenn als Beispiel eine Aktualisierungsrate von 20 Frames pro Sekunde erreicht werden soll, sollte die Framelänge auf 50ms gesetzt werden. Nachdem die Framelänge gesetzt ist, muss das erste Frame übertragen werden (d.h. es müssen alle RGB Werte gesetzt werden). Danach muss auf den FrameRendered Callback gewartet werden woraufhin das nächste Frame übertragen werden muss usw.

LEDs mit fester Aktualisierungsrate steuern

Wenn ein FrameRendered Callback empfangen wird bevor alle LEDs eines Frames gesetzt wurden, ist die Aktualisierungsrate zu hoch.

Gehäuse

Ein laser-geschnittenes Gehäuse für das LED Strip Bricklet ist verfügbar.

Gehäuse für LED Strip Bricklet

Der Aufbau ist am einfachsten wenn die folgenden Schritte befolgt werden:

  • Schraube Abstandshalter an das Bricklet,
  • schraube Unterteil an untere Abstandshalter,
  • baue Seitenteile auf,
  • stecke zusammengebaute Seitenteile in Unterteil und
  • schraube Oberteil auf obere Abstandshalter.

Im Folgenden befindet sich eine Explosionszeichnung des LED Strip Bricklet Gehäuses:

Explosionszeichnung für LED Strip Bricklet

Hinweis: Auf beiden Seiten der Platten ist eine Schutzfolie, diese muss vor dem Zusammenbau entfernt werden.

Programmierschnittstelle

Siehe Programmierschnittstelle für eine detaillierte Beschreibung.

Sprache API Beispiele Installation
C/C++ API Beispiele Installation
C# API Beispiele Installation
Delphi/Lazarus API Beispiele Installation
Go API Beispiele Installation
Java API Beispiele Installation
JavaScript API Beispiele Installation
LabVIEW API Beispiele Installation
Mathematica API Beispiele Installation
MATLAB/Octave API Beispiele Installation
MQTT API Beispiele Installation
openHAB API Beispiele Installation
Perl API Beispiele Installation
PHP API Beispiele Installation
Python API Beispiele Installation
Ruby API Beispiele Installation
Rust API Beispiele Installation
Shell API Beispiele Installation
Visual Basic .NET API Beispiele Installation
TCP/IP API    
Modbus API