Forum: Mikrocontroller und Digitale Elektronik richtige Methode LED-Strip WS2812B am Raspberry Pi


von Matthias S. (Firma: Herr) (lep230)



Lesenswert?

Hallo,

wollte mal nachfragen, was die beste Methode ist, einen WS2812B Strip 
mit 96 LED's mit einem Raspbarry PI zu steuern.
Anscheinend sind diese LED's sehr empfindlich auf Spannungsspitzen sowie 
wenn die Datenleitung noch aktiv ist, während die Arbeitsspannung nicht 
anliegt.

Wie kann ich meine Strips am besten gegen Defekte absichern?

Mit meiner Recherche im Netz bekomme ich leider nur Halbwissen, da sich 
viele Meinungen in den Blogs unterscheiden.

Der Raspberry Pi liefert am GPIO Pin 18 leider nur 3.3VDC die LED'S 
werden aber mit 5VDC betrieben.
Laut Datenblatt der LED's sollte die Spannung der Datenleitung aber 70% 
der Arbeitsspannung der LED'S betragen.

Hier die Varianten, die ich gefunden habe:

Variante 1: Data Line vom Strip direkt am Pin 18 des Raspberry

Variante 2: 330 Ohm Widerstand direkt am Data Input der LED'S
(Link: Beispiel mit einem Arduino der 5VDC anstatt die 3.3VDC vom RAS am 
PWM liefert)
https://cdn-learn.adafruit.com/assets/assets/000/030/892/medium800/leds_Wiring-Diagram.png?1456961114


Variante 3: Logic Level Converter am Pin 18 um die 3.3VDC auf 5VDC 
anzuheben. Hier ist fraglich, ob nicht wiederum ein kleiner Widerstand 
auf die Datenleitung einzubauen ist.
https://i.stack.imgur.com/fXj79.png

http://www.ebay.com/itm/10x-IIC-I2C-Logic-Level-Converter-Bi-Directional-Module-5V-3V-for-Arduino-TE718-/192151764589

Variante 4: WS2812b - Schutzschaltung einbauen (siehe Link), was aber 
wiederum nur 3.3VDC liefert und nur Spannungsspitzen ausbügelt.
http://www.led-studien.de/schutzschaltung-fuer-ws2812-pixel/


Variante 5: Das PWM-Signal mit einem Transistor verstärken, sodass eine 
Steuerspannung von 5VDC-30% ensteht. Hier ist mir nicht klar, ob ein 
Transistor die schnelle Schaltfrequenz des PWM überhaupt leisten kann.

Außerdem bauen manche einen Stabilisierungskondensator parallel zur 
Spannungsversorgung ein, andere wieder nicht.

Ich habe mal zu den jeweiligen Varianten ein paar Bilder hochgeladen, 
die ich im Netz gefunden habe.

Quellen:
LED's: https://www.pololu.com/product/2547

Beitrag "Re: WS2812 und WS2812b Qualitätsprobleme!"
http://www.ledstyles.de/index.php/Thread/23548-WS2812-Probleme/?pageNo=1
https://raspberrypi.stackexchange.com/questions/53276/control-5m-of-ws2812-led-strip-wire-it-up
https://learn.adafruit.com/adafruit-neopixel-uberguide/basic-connections


Hoffe, dass mir hier jemand weiterhelfen kann, und vielleicht Klarheit 
für alle bringt.

Liebe Grüße

Matthias

von Mikro 7. (mikro77)


Lesenswert?

Matthias S. schrieb:
> Der Raspberry Pi liefert am GPIO Pin 18 leider nur 3.3VDC die LED'S
> werden aber mit 5VDC betrieben.
> Laut Datenblatt der LED's sollte die Spannung der Datenleitung aber 70%
> der Arbeitsspannung der LED'S betragen.

Das ist richtig.

In der Praxis (bei mir und anderen Forenteilnehmer) funktioniert dennoch 
auch jeder Pin des Raspberry Pi.

Du kannst natürlich jede Form von Level Shifting nutzen um das Signal 
anzuheben. Dazu gibt es hunderte von Beiträgen im Internet, bspw. 
https://electronics.stackexchange.com/questions/127606/simplest-uni-directional-level-shifter-3-3v-5v

> Anscheinend sind diese LED's sehr empfindlich auf Spannungsspitzen sowie
> wenn die Datenleitung noch aktiv ist, während die Arbeitsspannung nicht
> anliegt.

Wie kommst du darauf?

> Außerdem bauen manche einen Stabilisierungskondensator parallel zur
> Spannungsversorgung ein, andere wieder nicht.

Normalerweise unnötig. Falls das NT schwach ist oder nicht gut 
ausregelt, kann er helfen.

> wollte mal nachfragen, was die beste Methode ist, einen WS2812B Strip
> mit 96 LED's mit einem Raspbarry PI zu steuern.

Noch als Anmerkung: Bei der Stromversorgung kommt es zu einem 
Spannungsabfall auf dem Stripe (von der ersten Richtung letzte LED). 
Nach meiner Erfahrung ist dieser Spannungsabfall allerdings häufig 
unkritisch (hier bei mir mit 1.2A und 30 LEDs gerade mal 16 mV). 
Insbesondere da die Chips auch noch gut bei etwas über 3V arbeiten. 
Mehrfacheinspeisung also unnötig. Im Zweifelsfall testen / nachmessen.

von Rene K. (xdraconix)


Lesenswert?

Bei 96 LEDs ist das alles sehr sehr unkritisch. Eine Zwischenspeisung 
wird da nicht nötig sein. Dennoch würde ich am Ende noch eine 
Schlussspeisung vorsehen. Aber das siehst du dann wenn du alle LED voll 
weiß durchsteuerst und zum Ende hin die LEDs ins rötliche abdriften. Bei 
mir sind es übrigens bei 18 Meter á 60 LED ein Spannungsabfall auf ca. 
3,4V. Ich habe dann alle 2 Meter eine Zwischenspeisung hinzugefügt. 
Klappt tadellos.

Wenn du die normalen WS Stripes nutzt, ist da vor jeder LED schon ein C 
mit drauf, als auf Kondensatoren kannst du eigentlich voll verzichten.

Ich steuere meine mit einem STM32 an, der liefert auch bloß 3V am 
Ausgang, auch das geht wunderbar. Du musst nur aufpassen das deine 
Leitung vom Ausgang zur ersten LED relativ kurz (<10cm) ist, sonst 
klappt dies nicht.

So als kleinen Tipp: Schneide dir eine LED vom Strip ab und nutze sie 
als "Opfer-LED" die packst du dir direkt an deinen Raspi oder was auch 
immer, gehst dort mit deinen 3V drauf und von deren Ausgang hast du dann 
deine 5V... Da kannst du auch größere Strecken mit dem Datenkabel 
überbrücken - spart zumindest einen Lvl-Shifter. ;-)

von yesitsme (Gast)


Lesenswert?

Mikro 7. schrieb:
>> Anscheinend sind diese LED's sehr empfindlich auf Spannungsspitzen sowie
>> wenn die Datenleitung noch aktiv ist, während die Arbeitsspannung nicht
>> anliegt.
>
> Wie kommst du darauf?

Die WS2812 (ohne B) hatten keine Schutzdioden am Datenpin. Gerüchteweise 
sind die bei Schaltungsfehlern sehr leicht abgeraucht (Nein, ich habe 
das nicht getestet... ehrlich).

Die WS2812B haben diese Dioden und halten dementsprechend mehr aus. Ich 
denke daher reicht für die ein Widerstand in der Datenleitung.


Matthias S. schrieb:
> wollte mal nachfragen, was die beste Methode ist, einen WS2812B Strip
> mit 96 LED's mit einem Raspbarry PI zu steuern.

Ich hätte da einen PIC mit CLC genommen, damit das Timing richtig ist 
und der Raspberry nicht mit Bitbanging und aktiven Warten beschäftigt 
ist.
Ansonsten einen Levelshifter, Schutzwiderstand in der Datenleitung und 
dem Kondensator in der Spannungsversorgung.

von Mikro 7. (mikro77)


Lesenswert?

yesitsme schrieb:
> Ich
> denke daher reicht für die ein Widerstand in der Datenleitung.

Schaden tut er nicht. Wofür ist er aber notwendig?

yesitsme schrieb:
> Ich hätte da einen PIC mit CLC genommen, damit das Timing richtig ist
> und der Raspberry nicht mit Bitbanging und aktiven Warten beschäftigt
> ist.

Da er GPIO Pin 18 nutzen will, wird er wohl den PWM Serializer (DMA) 
nutzen. Da braucht es keinen uC.

Bit-banging mit 400ns im Raspbian Userland über mehrere Signale zu timen 
ist ohnehin extrem schwierig (quasi unmöglich); ganz zu schweigen von 
Interrupts und Thread Suspension.

von Sicherheitsfanatiker (Gast)


Lesenswert?

Hi,
ich habe bei mir einen Optokoppler in die Datenleitung eingebaut.

Ich hatte ein komische Gefühl dabei, dass ich zwei Netzteile (LED und 
Pi) über GND zusammenschließe. Wer weiß schon was da für 
Ausgleichsströme fließen, weil die Schaltnetzteile kein richtiges Ground 
haben.

Gebranntes Kind... es gab da mal einen Vorfall, als ich ein externes 
Gerät mit Schaltnetzteil per USB an mein PC angesteckt hatte und der 
dann immer abgeschmiert ist.

Vorteil daran war, dass sich damit das Pegelwandler Problem 3,3V zu 5V 
mit gelöst hat.

von Rene K. (xdraconix)


Lesenswert?

Sicherheitsfanatiker schrieb:
> Ich hatte ein komische Gefühl dabei, dass ich zwei Netzteile (LED und
> Pi) über GND zusammenschließe. Wer weiß schon was da für
> Ausgleichsströme fließen, weil die Schaltnetzteile kein richtiges Ground
> haben.

Das ist viel zu kompliziert gedacht. Ich speise den µC halt ebenfalls 
aus den +5V des Netzteils der WS Stripe. Ich bin noch nie in Versuchung 
gekommen den µC (oder meinetwegen auch den Raspi, der läuft ebenfalls 
mit 5V) mit einem anderen NT zu benutzen, warum auch?! Strom liegt ja 
schon da an der Stripe.

von Sicherheitsfanatiker (Gast)


Lesenswert?

so kann man es natürlich auch machen und es ist sogar die elegantere 
Lösung

von DraconiX (Gast)


Angehängte Dateien:

Lesenswert?

Sicherheitsfanatiker schrieb:
> so kann man es natürlich auch machen und es ist sogar die
> elegantere Lösung

Da eignen sich dann übrigens diese lustigen 3-Pin Stecker an den Stripes 
die da am Anfang dran sind ganz gut. :-) so mach ich das immer, da 
braucht man ausschließlich diesen Stecker zu lösen und hat seinen MC in 
der Hand.

Btw... ich bin René K., bin am Handy aber nicht angemeldet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.