Hallo, ich experimentiere seit geraumer Zeit, LED's PL9823 mit einem Arduino UNO anzusteuern. Funktioniert soweit auch sehr gut - und fehlerfrei.
Nun zu meinem Thema: Sofort bei Anlegen der Spannung (per USB) blitzen alle LED's kurz hell auf --> der Uno bootet parallel --> danach läuft der geladene Sketch fehlerfrei ab und alle (unabhängig von der Anzahl) PL9823-LED's funktionieren wie vorgesehen - fehlerfrei. Also, noch bevor der Microcontroller fertig gebootet hat/bereit ist, habe ich das 'Blitzthema' auf dem Tisch.
Gibt es für dieses 'Blitz'-Thema irgendeine (evtl. technische) Lösung - die ja im Vorfeld des Arduino-Uno-Betriebs liegen muss - oder muss ich mich mit dem unschönen 'Anfangsblitz' bei diesem LED-Typ einfach abfinden?
Vielen dank für Euren hilfreichen Input.
Fur potentielle Antwortgebende waere es hilfreich, wenn Du die vollstaendige Schaltung offen legen koenntest, wie die LEDs am Arduino angeschlossen wurden.
Also z.B. vom Portpin nach + oder nach GND? Oder womoglich ueber einen Treibertransistor? Welcher Vorwiderstand? Ganz viel Infos, die fuer eine qualifizierte Antwort fehlt. Am besten den kompletten Schaltplan, denn das Problem kann auch von der Spannungsversorgung herruehren.
Mag ggfs. von der jeweiligen Implementierung bzw. Version des verbauten WS28xx Chips in den LEDs abhängen.
Meine 20x20 Matrix mit genau diesen LEDs blitzt auch einmal komplett auf wenn ich das Ding starte. Und der Controller sendet definitiv vorher keine Daten.
Gibt es für dieses 'Blitz'-Thema irgendeine (evtl. technische) Lösung -
die ja im Vorfeld des Arduino-Uno-Betriebs liegen muss - oder muss ich
mich mit dem unschönen 'Anfangsblitz' bei diesem LED-Typ einfach
abfinden?
vielleicht hilft es ja einen Resetcontroller zu verbauen und Data auf low zu halten (100µs) bis VCC richtig steht, bzw. bis der µC bereit ist und Daten liefern könnte und seine Ports richtig stehen.
Als erstes reicht es ja Data In abzutrennen und auf low zu legen ob es dann noch blitzt.
Eine Antwort/Frage davon trifft genau die auf mein Thema zu. Die Blitze bzw. Dauerbeleuchtung werden auch 'standalone' - also ohne irgend eine Verbindung mit dem Arduino (ganz schön blöd) - nur bei Anlegen einer 'externen' 5 V Spannung (nicht über USB) an die LED PL9823 erzeugt - kein Anschluss an DIN vorgenommen. Nur 5 V+ und 5 V- (GND) mit 1000my/16V Stützkondensator zwischen + und GND und schon blitzt es bzw. ist die Dauerleuchtung der LED's vorhanden.
Dies gilt es zu verhindern und/oder (technisch) zu unterdrücken.
Ich sehe an den vielen Antworten, dass dieses Thema auch bei anderen Usern relevant und sicher interessant ist.
Einen 'Schaltplan' habe ich für diesen einfachsten Anschluss (externe Einspeisung) noch nicht erstellt.
Nur 5 V+ und 5 V- (GND) mit
1000my/16V Stützkondensator zwischen + und GND und schon blitzt es bzw.
ist die Dauerleuchtung der LED's vorhanden.
Dies gilt es zu verhindern und/oder (technisch) zu unterdrücken.
deswegen pulldown dauer low ohne Signal (1k bis 470 Ohm) versuchen
Nützt bei meinen PL9823 allerdings nichts. Selbst wenn ich den Eingang fest auf "low" setze leuchten sie einfach blau nachdem die Versorgungsspannung da ist, solange bis sie ein gültiges Signal bekommen.
Nützt bei meinen PL9823 allerdings nichts. Selbst wenn ich den Eingang
fest auf "low" setze leuchten sie einfach blau
und mit einem Resetcontroller der definiert Data In auf low tastet?
Also was ich versucht habe:
Vcc an, mit unbeschaltetem Eingang -> Leuchtet blau
Vcc an, mit Eingang auf GND -> Leuchtet blau
Vcc an, Eingang "high", dann auf 1s auf "low" gesetzt -> Leuchtet blau
Es sieht für mich so aus, als ob der Wert in dem internen Register der LED nach dem Einschalten einfach 0x00, 0x00, 0xff (RGB) ist. Das behält die solange bis sie über DIN neue Daten empfangen hat.
@TO Welu: Warum ist die Einschaltreihenfolge so gewählt, dass diese
PL9823 schon Spannung bekommen, bevor die Logik sauber arbeitet?
Weil die LEDs aus der gleichen Spannungsversorgung gespeist werden wie der Controller. Der braucht dann ein paar ms bis er die ersten Daten schickt, in dieser Zeit leuchten die LEDs eben kurzzeitig (bei mir blau) bis sie zum ersten mal Daten empfangen haben.
Das kenne ich von den WS28xx jedenfalls auch nicht, scheint ein "Feature" der PL9823 zu sein ;-)
Es sieht für mich so aus, als ob der Wert in dem internen Register der
LED nach dem Einschalten einfach 0x00, 0x00, 0xff (RGB) ist. Das behält
die solange bis sie über DIN neue Daten empfangen hat.
Hallo zusammen,
nach weiteren ausführlichen Test's kann ich leider die Ergebisse, die Markus geschildert hat, nur bestätigen. Schade, dass ich nicht daneben lag.
Ich habe mich entschieden, die PL9823 daher nicht in meinem Vorhaben einzusetzen. Es aber kann sicherlich ja andere Anwendungen geben bei denen der 'Anfangsblitz' nicht störend ist.
Ich werde einen Strip mit WS2812er LED's einsetzen. Da blitzt nichts beim Anlegen der Spannung - egal zu welchem Zeitpunkt. Ich werde jetzt eben bei der Realisierung und bei Einsatz von LWL einen anderen Weg suchen; mit der PL9823 LED wäre es aufgrund der bedrahteten LED-Form halt einfacher gewesen.
Ich möchte mich bei allen vielmals bedanken, die sich für meine Anfrage engagiert und gute Beiträge gepostet haben.
ich habe mir ebenfalls die PL9823 für mein Projekt gekauft.
Allerdings als 5mm Version.
Das Aufblitzen der LEDs habe ich auch, und sehe ebenfalls keinen Weg, es weg zu bekommen.
Legt man an den PL9823 nur die Spannung an, leuchten sie blau.
Egal ob DataIn auf Masse oder VCC (5V) liegt.
Schließe ich original WS2812b an den Arduino an, leuchten die WS2812b erst, wenn mein Programm es sagt. Daran liegt es sicherlich nicht.
Schade, die 5mm Version gefällt mir sehr gut.
Gibt es die original WS2812b auch als 5mm Version?
der Thread ist ja schon ein bisschen älter, aber ich hab für das blaue Problem mit den DL9823 einen funktionierenden Workaround gefunden. Vielleicht ein bisschen unschön, aber ich bin kein Experte und habe eine Lösung gesucht die einfach nur funktioniert.
Ich habe in die Stromversorgung für die LEDs ein Relais eingesetzt, das ich mit dem Arduino schalte.
Direkt nach dem Schaltsignal, die Leitung zwischen Relais und LEDs solange auslesen, bis das Relais durchgeschaltet hat.
Dann direkt im Anschluss die LEDs resetten.
Das funktioniert schnell genug, um nichts mehr von dem blauen Aufblitzen zu sehen.
Getestet mit Arduino IDE, Arduino Uno, Adafruit NeoPixel Library und bis jetzt nur einer einzelnen DL9823. Werde es aber bald nochmal mit einer längeren Kette probieren.
Ich habe in die Stromversorgung für die LEDs ein Relais eingesetzt, das
ich mit dem Arduino schalte.
Es reicht, wenn am Anfang (bei Reset) DIN auf "0" bleibt. ATMega hat während Reset alle Ausgänge hochohmig, das wirkt auf LED wie "1". Relais - das ist zu groß... Es reicht, zwischen Eingang und Erde einen Widerstand zu schalten (und evtl. noch Puffer, damit "0" sauberer wird).
Ich benutze WS2812 über HC138 und HC132, während Reset bleibt "0". Kein Problem wie geschrieben.
Allerdings sind WS2812-ähnliche LEDs unbequem: Mikrocontroller kann in der Zeit nichts anderes machen. Viel interessanter sind LEDs wie SK9822, quasi SPI. Hier kann Takt ungleichmäßig werden (z.B. wenn ISR kommt) und passiert trotzdem nichts.
while (!digitalRead(READ_PIN)) ; // Auf Relais warten
Ich hoffe, dir ist klar, dass so ein Relais ganz heftig prellen kann. Das Prellen kann anfang noch kurz sein und erst nach ein paar Monaten kommen.
Angehängt mal ein paar Bilder eines "üblichen" FTR-F1 Relais mit dem aus der roten 24V-Spannungsquelle der dunkelblaue 24V-Verbraucher eingeschaltet wird. Das letzte Bild ist die Streuung nach einem Nachtlauf mit ca. 15k Einschaltzyklen. Man sieht, dass das Relais eine Prelldauer bis zu 1,5ms hat.
Und was zur Hölle spricht dagegen, das hier unsinnige Relais einfach durch einen P-Channel-MOSFET als Hi-Side-Switch zu ersetzen?
Oder auch einen N-Channel-MOSFET mit entsprechendem Gate-Treiber für statische(!) Hi-side-Ansteuerung zu nutzen?
Das ist jetzt keine Wissemschaft und die Standardapplikation tuts.
Das mag sein, aber wir konnten das hier nachvollziehbar testen, das die PL9823 immer blau leuchten nachdem sie Spannung bekommen, egal was man mit DIN gemacht hat.
Am Ende sind sie eben doch nicht gleich.
Die Überlegung die Versorgungsspannung erst zu schalten wenn der Controller bereit ist, und dann sofort danach alle LEDs mit #000000 zu versorgen ist gut.
Statt Relais einen brauchbaren Mosfet wie obens schon angemerkt würde es dann perfekt machen.
Das mag sein, aber wir konnten das hier nachvollziehbar testen, das die
PL9823 immer blau leuchten nachdem sie Spannung bekommen, egal was man
mit DIN gemacht hat.
Ich hoffe, dir ist klar, dass so ein Relais ganz heftig prellen kann.
Das Prellen kann anfang noch kurz sein und erst nach ein paar Monaten
kommen.
Wie gesagt, ich bin echt kein Experte. Hab noch nicht so viel Erfahrung mit dem Schalten mit MOSFET.
Inzwischen ist die Schaltung aber mit MOSFET statt Relais aufgebaut und das funktioniert genauso gut und auch um einiges schneller.