Raspberry PI WS2801 LEDs

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    bislang wird für die Stromversorgung der LEDs ein 5 Volt 20 Watt Netzteil eingesetzt.

    Mir ist aufgefallen, dass die LEDs auf Störimpulse welcher Art auch immer reagieren.

    So schalten sich einige LEDs an, wenn i m Nebenraum eine Deckenleuchte mit Trafo angeschaltet wird. Manchmal schaltet sich auch nur die erste LED plötzlich an, obwohl vom Raspberry PI kein Signal abgesandt wurde.

    Ich vermute mal, dass die kurzzeitigen Störimpulse im 240V Netz sich auf die 2801-Chips durchschlagen, und dieser Chip interpretiert die Impulse z.B. als Anschalt-Impuls.

    Gibt es eine Schutzschaltung oder ähnliches, mit dem etwaige Störimpulse aus dem 240V-Netz ausgefiltert werden können?

    Oder muss ich mir einen Entstörfilter kaufen, wie z.B. solche https://www.conrad.de/de/o/entstoerfilter-0241641.html ?

  • Ich glaube nicht, dass das über die 230V kommt. Die WS2812 haben ja einen hochohmigen Dateneingang. Wenn Impulse kommen, wird versucht dies als Daten auszuwerten...

    Kann es sein, dass dies hauptsächlich passiert, wenn der PI ausgeschaltet ist? Das wäre naheliegend, denn dann kann der PI das Störsignal durch einen definierten Pegel nicht "ableiten". Es kann aber auch sein, dass der Ausgang "abgeschaltet" (=hochohmig) ist, wenn die LEDs nicht angesteuert werden.

    Verwendest Du einen Pegelwandler (WS2812 arbeiten mit 5V, RPI mit 3,3V)? Wenn nicht arbeitet das System im "Graubereich" und mein nächster Vorschlag würde die Situation noch verschlechtern:

    Gib einen Widerstand (min. 1K bis max. 10K) von DI gegen GND. Falls ein Störsignal empfangen wird, wird dies durch den Widerstand abgeschwächt: Ein Störsignal hat in der Regel wenig Energie und wird daher an einem Widerstand zu einem großen Teil "abgeleitet"

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Hallo VeryPrivat,

    die LEDs werden von einem separatem 5V 20 Watt Netzteil direkt versorgt. Wenn die 5 volt direkt vom Raspberry über die GPIO abgezweigt wären, bräuchte ich ein stärkeres Netzteil, der den Raspberry und die LEDs versorgen kann.

    Der Raspberry und die LEDs werden über eine gemeinsame 240Volt-Schaltleiste geschaltet.

    Einen Widerstand gegen Ground zu schalten werde ich austesten, ob das schon etwas hilft.

  • Das mit dem Netzteil ist klar, das meinte ich auch nicht.

    Hier wird unter Punkt 1 kurz erklärt, warum man einen Pegelwandler braucht - ich habe das vorhin kurz angedeutet.

    Es funktioniert meist ohne, aber wenn Du den "PullDown" Widerstand wie vorgeschlagen einbaust, verschlechtert sich die Situation und es kann sein, dass es gar nicht mehr klappt, daher vorab gleich die Frage danach.

    Da es oft ohne den Pegelwandler funktioniert, ist das hier ein sehr umstrittenes Thema im Forum. Tatsache ist, dass es laut Datenblatt der WS2812B nicht funktionieren dürfte. Eine WS2812B LED ist im Prinzip eine LED bei dem der WS2801 Treiber bereits drinnen ist.

    Der springende Punkt im Datenblatt ist, dass der HIGH Datenpegel (VIH) mindestens 80% der Versorgungsspannung (VDD) haben muss (also 80% von 5V sind 4V).

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Dreh mal den Stecker des LED Netzteils um 180° in der Steckdose, vielleicht hilft das. Falls nicht könnte man dies auch noch mit dem RPi NT tun. ( Aber nicht gleichzeitig! ) Ansonsten sind noch viele Fehlerursachen möglich, angefangen von der RPi / LED Verkabelung, Schaltung bzw. einer falsch angeschlossenen Deckenleuchte. Da muss man mal im Ausschlussverfahren testen, wo das Problem her kommt.

  • VeryPrivat er nutzt laut Titel den WS2801, bei dem Stromversorgung und Signale (anders als beim 2812) getrennt sind. 4-Pole statt 3. Ist da der Pegelwandler trotzdem notwendig?

    Wenn man die LED's mit 5V betreibt und als Signalpegel 0,8xVDD= 4V gefordet ist, und am RPi nur max. 3,3V rauskommen? Man könnte als quick & dirty Lösung auch für die erste LED die Spannung mit einer Diode senken, aber ein Levelshifter oder Logik IC ist wohl die bessere Wahl.

  • Auch könnte man in die Zuleitung Spannung für den PI einen Ferritring einschleifen.

    Wo dann das das 5.1V Zuleitungskabel 3x drumherum gewickelt wird.

    Müsste dann ein Ferritring mit 25-30mm Innendurchmesser sein.

    Das Ganze ergibt dann einen Mantelwellenfilter, der Störungen aus dem Netz mildert.

    Man muss da auch nichts Abschneiden oder Löten, sondern nur das Kabel der PI Stromversorgung bzw. dessen Stecker durch den Ring stecken und um den Ring wickeln und dass 3-4 mal.

    Obs aber hilft weis ich nicht, denn die Beschreibung lässt eigentlich auch auf ein Problem in der Elektroverteilung schließen!

    Wenn im Nebenraum die Deckenleuchte auch mit LED ist, könnte da schon ein Stromstoß auftreten, denn LED haben einen recht hohen Einschaltstrom.

    Der eigentlich am Trafo mit elektrischen Bauteil, einem Einschaltstrom Begrenzer, verhindert wird.

    Außer es ist ein Asia Preiswert Teil, da könnte dieses Bauteil Fehlen.

  • Hallo,

    vielen Dank für die rege Diskussion :)

    Die Idee mit den Ferritring ist logisch einleuchtend. Das werde ich in Angriff nehmen.

    Es gibt mehrere Typen oder Formen von Feritringe:

    sourcing map 23,5 x 47,3 x 18,5mm Ferrit Ring Eisenpulver Toroid Kerne Schwarz Ferritkerne DE de
    sourcing map 23,5 x 47,3 x 18,5mm Ferrit Ring Eisenpulver Toroid Kerne Schwarz Ferritkerne DE de
    www.amazon.de


    oder

    10x EMI RFI Entstörfilter Ferritfilter Ferritkern Klappferrit für Kabel 5mm
    10x EMI RFI Entstörfilter Ferritfilter Ferritkern Klappferrit für Kabel 5mm
    www.amazon.de

    Welcher wäre denn sinnvoller?

    Es wird in der Tat ein 4poliger Anschluss verwendet, bei dem die Datenleitungen an zwei GPIO-Ports gehen, während die 5 Volt und Masse an ein seperates 20 Watt Netzteil gehen. Ein Versuch den Raspberry ebenfalls mit dem gleichen Netzteil zu versorgen (über einen 5V GPIO-Port) schlägt fehl, da die Software auf dem Raspberry in dem Fall ein Undervolt-Fehler (Zu geringe Spannung) meldet, sobald einige LEDs an gehen.

    Eine LED-Strip mit einem WS8212 Chip wurde aus dem Grunde nicht genommen, weil bei diesem nur drei Anschlusspole zur Verfügung stehen.

  • Ring ist Ring, das andere sind Klappferrite die man auf ein Kabel clipst, die dann aber genau passen müssen!

    Diese Klappferrite sind gedacht für USB, HDMI Antennenkabel etc.

    Aber wie gesagt, nur runde Kabel und dann vom Innendurchmesser genau zum Kabel Außendurchmesser passend.

    Dass ist dann so etwas, wie man bei fertigen kabeln sieht, die Dinger die da dran sind.

    Und bei Ferrit Ring, da muss der Stecker gut durchpassen, so dass man da das Kabel 3-4x um den Ring wickeln kann.

    Man könnte aber auch einen Elektriker einen Einschaltstrom Begrenzer in die Zuleitung zu der Leuchte im Nachbarzimmer einbauen lassen!

    So Dinger sind nicht arg teuer.

    Gibt es sogar als Zwischenstecker, was wohl bei einer Deckenleuchte nicht in Frage kommt.

    Bei einer LED Deckenleuchte wäre eher sowas von Nöten.

    Link

    Einmal editiert, zuletzt von Thomas H (18. September 2021 um 21:20)

  • Warum sammelst Du Lösungen bevor Du mal eine probierst?

    Ich bin ziemlich sicher, dass das Signal NICHT über die 230V kommen. Da muss das Störsignal über ein Netzgerät bei dem die Spannung gleichgerichtet wird und danach wieder zerhackt wird - das schafft ein solches Signal normalerweise nicht.

    Andererseits ist Dein ganzer LED Stripe eine Antenne - und ohne die vorgeschlagene Ableitung (z.B. mittels Widerstand) oder durch den aktiven Ausgang des PI wird das Signal als Steuersignal ausgewertet. Ist doch nachvollziehbar, oder?

    Den Vergleich mit der WS2812 mache ich daher, da ich den persönlich habe und ähnliche Erfahrungen gemacht habe. Bei WS2801 wäre es wohl am sinnvollsten den CLK zu entstören - wenn kein CLK Signal kommt, ist das Signal am Dateneingang (SDI) irrelevant...

    Und falls es nach der "Entstörung" der normale Betrieb gar nicht mehr klappen sollte, weißt Du ja bereits warum...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Hallo VeryPirat,

    ich bin mir ganz sicher, dass die Störsignale vom 240V-Netz kommen, denn wenn im Nebenzimmer eine Deckenbeleuchtung mit Trafo angeschaltet wird, reagieren die LEDs immer darauf. Das Spielchen kann auch von einem anderen Zimmer fortgesetzt werden.

    Unterschiede gibt es nur, dass vom Nebenzimmer aus gleich etwa 25 LEDs darauf reagieren, während dessen nur die erste LED darauf reagiert, wenn z.B. im gleichen Zimmer eine gewöhnliche Deckenbeleuchtung mit Energiesparlampen angeschaltet wird.

    Via Funk können solche Störungen nicht produziert werden.


    Selbst wenn der Raspberry Pi ausgeschaltet ist und nur die LEDs mit Strom versorgt werden, reagieren diese auch auf die Einschaltvorgänge der Deckenlampen.

    Wahrscheinlich liegt es auch daran, dass es ein Altbau ist, in dem auch die 240V-Volt-Leitungen zum Teil ebenso alt sind. Ein Großteil wurden im Laufe der Jahre bereits ausgetauscht, jedoch eben nicht alle.

    Aber ich bin dabei eine Software-Lösung zu schaffen:

    Von einem Service, der beim Booten automatisch gestartet wird, kann künftig etwa alle 2 Sekunden der Zustand jeder einzelnen LED abgefragt und bei Bedarf korrigiert werden. Auf diese Weise wird zwar die Störung selbst nicht beseitigt, jedoch die Auswirkung minimiert, da die Störung nur max. 2 Sekunden zu sehen ist. Ich halte das für vertretbar.

    Auf dieser Webseite habe ich eine Basis-Grundlage für einen Service, der mit Python läuft: https://stackoverflow.com/questions/1603…daemon-in-linux

    Darauf aufbauend kann man eine Endlosschleife ausführen lassen, mit dem der Status der einzelnen LEDs abgefragt und geändert werden können.

    Wenn eine bewusste Änderung der LEDs herbeigeführt werden soll, kann dies über Funktionen im Python-as-Service-Script umgesetzt werden.

    Wobei das Beispiel-Script für Python 3 auf der Webseite https://pypi.org/project/adafruit-circuitpython-ws2801/ nicht funktioniert.

    Bei der Ausführung eines solchen Beispielscripts reagieren keine LEDs auf die Änderungen:

    Code
    import board
    import adafruit_ws2801
    
    leds = adafruit_ws2801.WS2801(board.D2, board.D0, 25)
    leds.fill((0x80, 0, 0))

    Im Python2 Script werden die LEDs über SPI-Ports angesteuert. Beim SPI brauchte ich auch keine genauen GPIO-Ports angeben, die verwendet wurden; dies wurde alles vom SPI-Modul ermittelt. Hier ein Teilausschnitt von einem Python2-Script:

    Aber das ist ein anderes Thema. Hierfür werde ich zu einem späteren Zeitpunkt noch ein eigenes Thema in diesem Forum eröffnen.

    2 Mal editiert, zuletzt von Ben2003 (19. September 2021 um 12:34)

  • Hallo VeryPirat,


    ich bin mir ganz sicher, dass die Störsignale vom 240V-Netz kommen, denn wenn im Nebenzimmer eine Deckenbeleuchtung mit Trafo angeschaltet wird, reagieren die LEDs immer darauf. Das Spielchen kann auch von einem anderen Zimmer fortgesetzt werden.


    Unterschiede gibt es nur, dass vom Nebenzimmer aus gleich etwa 25 LEDs darauf reagieren, während dessen nur die erste LED darauf reagiert, wenn z.B. im gleichen Zimmer eine gewöhnliche Deckenbeleuchtung mit Energiesparlampen angeschaltet wird.

    In wie weit lässt dies irgend einen Schluss zu, wie die Störungen über (Funk) Einstrahlung oder über die Netzspannung übertragen werden?

    Um so etwas feststellen zu können bräuchtest Du ein Oszilloskop oder besser gleich ein EMV Messlabor. Du willst unsere Hilfeversuche offensichtlich nicht annehmen - aber warum fragst Du dann eigentlich?
    Gutes Gelingen noch...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Hallo VeryPirat,

    :lol:

    trägt er ein Holzbein oder Augenklappe? :conf:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo,

    Man könnte aber auch einen Elektriker einen Einschaltstrom Begrenzer in die Zuleitung zu der Leuchte im Nachbarzimmer einbauen lassen!

    So Dinger sind nicht arg teuer.

    In einem Altbau gibt es gewiss viele Störquellen. An vielen Stellen wurden schon Steckdosenleisten mit integriertem Netzfilter eingesetzt, wie z.B. solche: https://www.amazon.de/Brennenstuhl-Premium-Protect-Line-Steckdosenleiste-6-fach-%C3%9Cberspannungsschutz/dp/B004Y49UTK/ref=sr_1_2?tag=psblog-21 [Anzeige]

    An dieser Steckdosenleiste hängen alle Geräte (RaspBerry Pi und Netzteil für LED-Strip) dran.

    Diese Steckdosenleiste hat einen HF-Filter.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!