FastLED 3.10.8
Loading...
Searching...
No Matches
Power Management Functions

Detailed Description

Functions to limit the amount of power used by FastLED.

+ Collaboration diagram for Power Management Functions:

Topics

 LED Power Consumption Models
 Configurable power consumption models for different LED types.
 

Power Control Setup Functions

Functions to initialize the power control system

void set_max_power_in_volts_and_milliamps (fl::u8 volts, fl::u32 milliamps) FL_NO_EXCEPT
 Set the maximum power used in milliamps for a given voltage.
 
void set_max_power_in_milliwatts (fl::u32 powerInmW) FL_NO_EXCEPT
 Set the maximum power used in watts.
 
void set_max_power_indicator_LED (fl::u8 pinNumber) FL_NO_EXCEPT
 Select a pin with an LED that will be flashed to indicate that power management is pulling down the brightness.
 

Power Control 'show()' and 'delay()' Functions

Power-limiting replacements of show() and delay().

These are drop-in replacements for CFastLED::show() and CFastLED::delay(). In order to use these, you have to actually replace your calls to CFastLED::show() and CFastLED::delay() with these two functions.

Deprecated
These functions are deprecated as of 6ebcb64, circa 2015. Do not use them for new programs.
void show_at_max_brightness_for_power () FL_NO_EXCEPT
 Similar to CFastLED::show(), but pre-adjusts brightness to keep below the power threshold.
 
void delay_at_max_brightness_for_power (fl::u16 ms) FL_NO_EXCEPT
 Similar to CFastLED::delay(), but pre-adjusts brightness to keep below the power threshold.
 

Power Control Internal Helper Functions

Internal helper functions for power control.

fl::u32 calculate_unscaled_power_mW (const CRGB *ledbuffer, fl::u16 numLeds) FL_NO_EXCEPT
 Determines how many milliwatts the current LED data would draw at max brightness (255)
 
fl::u32 calculate_unscaled_power_mW (fl::span< const CRGB > leds) FL_NO_EXCEPT
 
fl::u32 calculate_unscaled_power_mW (fl::span< const CRGB > leds, const fl::Rgbw &rgbw) FL_NO_EXCEPT
 Same, for a strip driven through the RGBW conversion.
 
fl::u32 controller_unscaled_power_mW (const fl::CLEDController &controller) FL_NO_EXCEPT
 One controller's demand at full brightness, in mW, including idle draw – the quantity the limiter sums and scales.
 
fl::u32 dither_reserve_mW (fl::span< const CRGB > leds) FL_NO_EXCEPT
 The most BINARY_DITHER can add to one latched frame of leds, in mW (#4342, contract R4: "quantization reserve").
 
fl::u32 controller_dither_reserve_mW (const fl::CLEDController &controller) FL_NO_EXCEPT
 dither_reserve_mW() for a controller that dithers, and zero for one that does not: a mode other than BINARY_DITHER, or an active RGBW/RGBWW conversion (which reads the raw pixel on every non-AVR target).
 
fl::u32 scale_power_for_brightness (fl::u32 total_mW, fl::u8 brightness) FL_NO_EXCEPT
 Applies the configured power-scaling response to a total power value.
 
fl::u8 calculate_max_brightness_for_power_mW (const CRGB *ledbuffer, fl::u16 numLeds, fl::u8 target_brightness, fl::u32 max_power_mW) FL_NO_EXCEPT
 Determines the highest brightness level you can use and still stay under the specified power budget for a given set of LEDs.
 
fl::u8 calculate_max_brightness_for_power_vmA (const CRGB *ledbuffer, fl::u16 numLeds, fl::u8 target_brightness, fl::u32 max_power_V, fl::u32 max_power_mA) FL_NO_EXCEPT
 Determines the highest brightness level you can use and still stay under the specified power budget for a given set of LEDs.
 
fl::u8 calculate_max_brightness_for_power_mW (fl::u8 target_brightness, fl::u32 max_power_mW) FL_NO_EXCEPT
 Determines the highest brightness level you can use and still stay under the specified power budget for all sets of LEDs.
 
fl::u32 power_ratio_of_255 (fl::u32 num, fl::u32 den) FL_NO_EXCEPT
 min(255, floor(255 * num / den)) for den > 0, computed in 32-bit arithmetic.