Skip to content

ws2812b

RealMerlin edited this page Mar 1, 2021 · 30 revisions

WS2812b -RGB-LED-Baender

Hiermit lassen sich die RGB-LED-Baender mit dem WS2812b Chip ansteuern.

ACHTUNG das Device ist noch in der Entwicklung. Auch diese Doku wird noch erweitert.

Hardware

Benoetigt wird ein C1416 board mit 16MHz Quarz (Tipp: Arduino Nano + CAN Breakoutboard)
Das WS2812b hat 3 Pins, VCC+DATA+GND
DATA wird am jeweiligen Outpin angeschlossen.
Aber nur direkt am MCU! Das WS2812b vertraegt nur 5V!
Die Versorungsspannung muss durch ein geeignetes Netzteil bereitgestellt werden.
Der LM2574 auf dem Controllerboard kann den noetigen Strom nicht liefern!
Das WS2812b zieht bei voller Beleuchtung umgefaehr 1,5A bei 30 LEDs

Achtung, Störungen durch Schaltnetzteile werden belanglos, wenn der ATmega328p und das LED-Band aus dem selben Netzteil gespeist werden!

Achtung, es wurde bisher nur am ATmega328p mit 16MHz getestet!

EDS Konfiguration

create ws2812b
  set feature 0
  set gruppe0 173
  set gruppe1 255
  set gruppe2 255
  set poti_helligkeits_gruppe 255
  set poti_farb_gruppe 255
  set port 4
  set anzLEDs 34
  set mute 255
exit
Feldname Bit Beschreibung Belegung
feature 0 ws2812b leuchtet nur weiß, unabhaenig von poti_farbe default: 0
gruppe0..2 Gruppen-IDs, siehe Funktionsbeschreibung 1..255; Ersatzwert: 255
poti_helligkeits_gruppe Gruppen-ID des des Potis um die Helligkeit zu regeln 1..255; Ersatzwert: 255
poti_farb_gruppe Gruppen-ID des des Potis um die Farbe zu regeln 1..255; Ersatzwert: 255
port Nummer des Output-Ports, an dem das ws2812b angeschlossen ist (PORTD) 2..6 (6=PD7)
anzLEDs Anzahl der LEDs 1..255
mute Gruppen-ID ueber den dieses Device de-/aktiviert wird 1..255; Ersatzwert: 255

Funktionsbeschreibung

Das WS2812b reagiert folgendermassen:

TASTER_DOWN

Falls eine Gruppe der Gruppen-Felder gleich der Gruppe im Frame ist, toggled er
(aendert seinen Zustand); d.h. war es aus, so schaltet es ein und umgekehrt.

WS2812B_SEND

hier ist eine direkte Steuerung moeglich
aktuell nur über den control mode von telican
send 5 125 <gruppe> <pattern> <ROT> <GRUEN> <BLAU> <BenutzeLEDs>

Bei den Werten von Rot, Gruen und Blau sind werte von 0 - 255 zulaessig
Siehe: RGB-Farbtabelle

z.B.:

  1. alle LED's dunkel gruen: send 5 125 173 1 0 100 0 1
  2. jede dritte LED dunkel rot, andere bleiben gruen: send 5 125 173 2 100 0 0 3
  3. jede vierte LED dunkel blau, andere aus: send 5 125 173 1 0 0 100 4
Parameter Beschreibung
HES
WS2812B_SEND
gruppe
Pattern 1 = Nicht gewaehlte LEDs gehen aus; 2 = Nicht gewaehlte LEDs bleiben an
R Wert fuer Rot (uint8_t)
G Wert fuer Gruen (uint8_t)
B Wert fuer Blau (uint8_t)
BenutzeLEDsPattern 1 = Jede LED (Pattern ohne Wirkung); 2 = jede zweite LED; 3 = jede dritte LED, usw.

per Poti's

Man definiert zwei Potis.
Mit dem einen wird die Farbe gewählt. Funktioniert wie beim Multitaster
Mit dem anderen wird die jeweilige Helligkeit eingestellt.
Dadurch ist es auch möglich Farben zu mischen.
Also man stellt den einen Poti auf Rot und dreht den zweiten auf 50%
Danach den einen auf Grün und den anderen auf 100%
Das ergibt dann Violett

Feature Bit 0

wenn das Bit 0 gesetzt ist, wird bei Poti Steuerung immer nur weiss angezeigt. Unabhaeniging von der gewaehlten Farbe.
Das ist z.B. sinnvoll wenn das ws2812b in einem Gaestezimmer installiert ist. Mit der Einstellung verhält sich der "Helligkeits Poti" wie ein Dimmer.
Das sollte nun jeder Gast verstehen.

Clone this wiki locally