Hallo zusammen, ich habe ein Projekt aus der Make [1, 2] nachgebaut, bei dem aus der IKEA-Lampe mit 16x16 LED-Matrix Obegränsad [3] der originale Controller ausgebaut und gegen einen ESP8266 ersetzt wird, um aus der Lampe eine Digitaluhr zu machen. Die Lampe verwendet für je 16 LEDs insgesamt 16 Schieberegister/LED-Treiber vom Typ StarChips SCT2024CSSG (siehe Anhang). Ich habe einiges an der ursprünglichen Software (siehe Anhang) geändert, z.B. dass die LEDs durchgängig mit 100 Hz aktualisiert werden und dass sich die Helligkeit der LEDs in Stufen einstellen lässt, indem der Dutycycle des PWM-Signals am output enable (OE) Pin variiert wird. Das sieht im Oszilloskop dann so aus, wie in der Abbildung duty_cycle_high_low.jpg. Die gesamte Kommunikation einer Aktualisierung der LEDs sieht man in Kommunikation.jpg. Mir ist aufgefallen, dass die LEDs bei niedriger Helligkeit (vielleicht fällt es aber auch nur dann auf) unregelmäßig flackern, was im Augenwinkel störend wirkt. Ich habe versucht das Phänomen zu filmen (LEDs_kurz.mp4), man sieht das Flackern aber nicht so gut, wie mit dem bloßen Auge. Ich habe dann mal einen der OUT-Pins eines der SCT2024CSSG direkt gemessen (Out_Pin.mp4). Meiner Meinung nach sieht man in dem Signal erhebliche Störungen, deren Ursache ich nicht kenne. Können diese Störungen das Flackern verursachen und wie kann ich die Störungen verhindern? Vielen Dank und ich wünsche allen schon mal einen ruhigen 3. Advent. VG, Stefan [1] https://www.heise.de/ratgeber/IKEA-Hack-fuer-Wandleuchte-OBEGRAeNSAD-LED-Matrix-frei-bespielen-9337311.html [2] https://make-magazin.de/xpsg [3] https://www.ikea.com/de/de/p/obegraensad-wandleuchte-led-schwarz-00526248/
Könnte an einem schlechten GND Konzept liegen. Zeig mal den Aufbau!
Ist das nicht falschrum mit dem _pLatch? if(w2 > 15) { w2 = 0; digitalWrite(_pLatch, HIGH); //delayMicroseconds(TT); digitalWrite(_pLatch, LOW); } Ich kenne die Schaltung nicht, aber wenn die 16 Schieberegister alle in Serie hängen sollte doch EIN Latchimpuls nach 256 Bits ausreichen?
Der ESP8266 hat nur einen einzigen Timer-Ausgang, und der wird in Kombination mit dem Sleep-Modus verwendet. PWM Signale erzeugt er per Software, diese wird aber häufig unterbrochen, um WLAN Ereignisse zu behandeln. Das äußert sich in Flackern des LEDs. Beim ESP8266 ist das Flackern unvermeidbar.
Soweit ich das sehe, ist das einfach ein Schieberegister, die Dimmung muss extern passieren, und das scheint ein PWM am OE der Schieberregister zu sein. Beim ESP8266 ist alles außer dem Hardware-SPI für das Programm-Flash via Software erzeugt, eben auch das PWM, und da der Prozessor sich ab und an im WLAN melden muss, zappelt das Signal halt. Und das Auge sieht sowas speziell bei reduzierter Hellgkeit und auch nur mit den "Löwensensoren" am Gesichtsfeldrand. Wenn das vernünftig funktionieren würde, würde ja nicht jede einfache dimmbare, RGB oder WWCW-Lampe einen speziellen Chip einsetzen, der sich um's PWM kümmert... Die kosten nix, die können nix (nur ein PWM-Pin, oder 2 oder 5, alles kein Problem, der ESP kann PWM an jedem Pin) und trotzdem baut man da einen extra Chinachip drauf, der die Dimmung macht. Jetzt weißt du warum.
Ron-Hardy G. schrieb: > Ich kenne die Schaltung nicht, aber wenn die 16 Schieberegister alle in > Serie hängen sollte doch EIN Latchimpuls nach 256 Bits ausreichen? Ja, das stimmt, habe ich gerade ausprobiert. Es reicht ein Latchimpuls nach allen 256 Bits. Ich dachte ein Latchimpuls bewirkt, dass die Daten von einem ins nächste Schieberegister geschoben werden. Ich verstehe den Text im Datenblatt nicht. Was bewirkt ein Latchimpuls? Dass die Daten an die OUT-Pins weitergegeben werden? An dem Flackern hat sich erstmal nichts verändert. VG, Stefan
Teo D. schrieb: > Könnte an einem schlechten GND Konzept liegen. > Zeig mal den Aufbau! Da kann man jetzt leider gar nicht so viel sehen. Die Lampe ist aus 4 identischen Modulen mit je 4 Schieberegistern und mit 4 x 16 LEDs aufgebaut. Die genau Schaltung ist auf weißen PCBs immer sehr schlecht zu erkennen. Die markierte Fläche ist aber sicher alles GND, denn da liegt GND der Schieberegister drauf und auch das gelbe Kabel mit Verbindung zum GND-Pin des Wemos D1 Mini Pro. An der Stelle U1 saß der ursprüngliche Controller. VG, Stefan
Steve van de Grens schrieb: > PWM Signale erzeugt er per Software, diese wird aber häufig > unterbrochen, um WLAN Ereignisse zu behandeln. Das äußert sich in > Flackern des LEDs. Ja und soetwas in der Art habe ich auch gelesen und darauf hin allen WLAN-Kram - nach besten Wissen und Gewissen - deaktiviert. Ich habe letztlich ESP8266WiFi.h gar nicht mehr eingebunden. Meine Frage ist natürlich, ob das die WLAN-Funktionen im ESP8266 komplett deaktiviert. Falls ja, dann tritt das Flackern auch ohne WLAN auf. VG, Stefan
Stefan M. schrieb: > Was bewirkt ein Latchimpuls? Das die aktuellen Daten im Schieberegister ins Ausgangsregister übernommen werden.
Stefan M. schrieb: > Ich habe letztlich ESP8266WiFi.h gar nicht mehr eingebunden. Dann ist WLAN wahrscheinlich aktiv, denn das ist die Standard Vorgabe im binären Part der Firmware, den du gar nicht weg lassen kannst. So schaltet man die WLAN Schnittstelle aus: http://stefanfrings.de/esp8266/index.html#wlanonoff Aber ob du damit auch die Unterbrechungen vollständig los wirst, weiß ich nicht. Unabhängig davon: Warum tust du dir den eigenartigen ESP8266 an, obwohl du gar kein WLAN brauchst?
Stefan M. schrieb: > Falls ja, dann tritt das Flackern auch ohne WLAN auf. Ok, ich nehme alles zurück und behaupte das Gegenteil: Jetzt(tm) habe ich WLAN deaktiviert und die ESP8266WiFi.h nicht mehr eingebunden und jetzt ist das Flackern weg. Wahrscheinlich hatte ich nur überlegt das mal zu testen... Jetzt werde ich mal ausprobieren, ob es auch ausreicht die WLAN-Verbindung einfach nur zu trennen und sie nur dann aufzubauen, wenn sie für einen neuen Zeitabgleich gebraucht wird. Vielen Dank an alle und eine ruhige Weihnachtszeit! VG, Stefan
Steve van de Grens schrieb: > Unabhängig davon: Warum tust du dir den eigenartigen ESP8266 an, obwohl > du gar kein WLAN brauchst? Ich brauche WLAN, um die aktuelle Zeit von einem NTP-Server zu holen. Aber ich denke das ist weit weniger of notwendig, als in der Original-Software vorgesehen. VG, Stefan
Stefan M. schrieb: > Jetzt werde ich mal ausprobieren, ob es auch ausreicht die > WLAN-Verbindung einfach nur zu trennen und sie nur dann aufzubauen, wenn > sie für einen neuen Zeitabgleich gebraucht wird. Es ist ausreichend die WLAN-Verbindung zu trennen. Dann ist kein Flackern mehr zu sehen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.