Open antonmeyer opened 9 years ago
You can reduce the refresh rate with fastled itself and you should be able to update the leds in the loop as often as you like (unless you need more fps within other parts of the program). Fastled 3.1 should fix this automatic to keep the update rate low enough. You should probably supply a bit more information about what leds you use and when you run into problems.
Hi Nico, finally you are right. With other example sketches it works better. Where it breakes the logic: a higher refresh rate should look better. I will do some experiments with the framerate. Thanks for that hint. I'm using a WS2812B stripe. And a 16 MHz atmel 328. May be there is a kind of interference.
I was actually doing what antonmeyer suggested a while back by performing a show only when changes occur, but I vaguely recall a conversation with Daniel Garcia where he said to run the show continuously. I'll play around with that again.
Haven't seen any flicker myself though, and I'm using WS2812's and APA102's. I used to get flicker on pin 13, but they patched that issue and I now use pins 11 and 12 on the Nano.
Ok, I will double check. May be I should just add a resistor and/or capacitor.
if you move the show call into EVERY_N call output get much more smooth. I guess that the high refresh rate of leds causes the flicker.
And as long you do not change the LEDs there is no need for a show call.
results in:
void loop () { EVERY_N_MILLISECONDS(thisdelay) { // FastLED based non-blocking delay to update/display the sequence. ripple(); show_at_max_brightness_for_power(); }
} // loop()