Hallo da draussen,
habe in den letzten Tagen meine zweite Wort Uhr fertig gestellt.
Nunja zumindestens mechanisch.
Meine erste Uhr dieser Art läuft bereits einwandfrei und besteht aus 114 WS2812 (LED-Strip), einen Nano, einen RTC1302 und einem 5V Netzteil. Das einzige was mich stört ist das einstellen der Uhrzeit also habe ich mir folgendes Setup vorgestellt: Wemos D1 mini mit Webinterface und ansonsten alles wie beim ersten.
Es stellte sich aber herraus das der RTC und das Webinterface seinen einenen Willen haben und kein Bock hatten mit zu arbeiten. Will sagen ich habs nicht hinbekommen obwohl die Uhr als solches Fehlerfrei läuft.
Also ESP32 Dev Board aus dem Keller geholt und Bluetooth genutzt. Es Funktioniert auch soweit alles ganz gut nur eine Kleinigkeit stört mich noch.
Es werden immer wieder sporadisch ein paar LED's angesteuert und die Farben hierfür willkürlich verändert. Da die Uhr ein Geschenk für meine Frau sein soll sitz ich ganz schön in der Sch....
Im WWW habe ich folgende Info gefunden
Workarounds
If your sketch is written so that every call to the show() method always follows immediately after a call to delay(), you can use up to 33 pixels in a strand without a problem. (Note: delay(0) doesn't work, it has to be at least delay(1).) The provided example sketches work this way.
If your sketch keeps time some other way, you can add a delay(1) call immediately before each call to the show() method, and use up to 33 pixels in a strand without a problem.
If you must have strands of 34 or more pixels, your only choice is to disable interrupts as described above and suffer the consequences.
Suggested Solution
The problem is pretty fundamental. The only way to prevent the extra delay appears to be to disable interrupts, and disabling interrupts for more than a millisecond (much more for long strands) is hardly a good answer.
See http://www.insentricity.com/a.cl/268/controlling-ws2812-rgb-leds-from-the-esp32 for an alternative driver design that should avoid this difficulty, if it can be ported to the Arduino environment.
Wenn ich das richtig deute soll vor dem laden der LED's ein tausenstel secündtschen gewartet werden.
In meinen Code habe ich das bereits versucht. Leider ohne Erfolg.
Hat jemand ne Idee was ich hier noch machen kann?