FastLED 3.10.6
Loading...
Searching...
No Matches
power_mgt.h File Reference

Detailed Description

Functions to limit the power used by FastLED.

Definition in file power_mgt.h.

+ Include dependency graph for power_mgt.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PowerModelRGB
 RGB LED power consumption model Used for standard 3-channel LEDs (WS2812, WS2812B, APA102, etc.) More...
 
struct  PowerModelRGBW
 RGBW LED power consumption model Used for 4-channel LEDs (SK6812 RGBW and similar). More...
 
struct  PowerModelRGBWW
 RGBWW LED power consumption model (RGB + warm white + cool white). More...
 

Functions

fl::u32 calculate_unscaled_emitter_power_mW (fl::span< const fl::u8 > codes, fl::u8 emitter_count)
 Charge already-solved physical output bytes in source emitter order: RGB, RGBW, or RGB + warm white + cool white.
 
PowerModelRGB get_power_model ()
 Get current RGB power model.
 
float get_power_scaling_exponent ()
 Get the current brightness-to-power response exponent.
 
fl::u8 get_white_emitter_mW ()
 The white-emitter draw the caller declared, or zero if they declared only an RGB model.
 
void set_power_model (const PowerModelRGB &model)
 Set custom RGB LED power consumption model.
 
void set_power_model (const PowerModelRGBW &model)
 Set custom RGBW LED power consumption model.
 
void set_power_model (const PowerModelRGBWW &model)
 Set custom RGBWW LED power consumption model.
 
void set_power_scaling_exponent (float exponent)
 Set a non-linear brightness-to-power response exponent.
 
Power Control Setup Functions

Functions to initialize the power control system

void set_max_power_in_milliwatts (fl::u32 powerInmW)
 Set the maximum power used in watts.
 
void set_max_power_in_volts_and_milliamps (fl::u8 volts, fl::u32 milliamps)
 Set the maximum power used in milliamps for a given voltage.
 
void set_max_power_indicator_LED (fl::u8 pinNumber)
 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 delay_at_max_brightness_for_power (fl::u16 ms)
 Similar to CFastLED::delay(), but pre-adjusts brightness to keep below the power threshold.
 
void show_at_max_brightness_for_power ()
 Similar to CFastLED::show(), but pre-adjusts brightness to keep below the power threshold.
 
Power Control Internal Helper Functions

Internal helper functions for power control.

fl::u8 calculate_max_brightness_for_power_mW (const CRGB *ledbuffer, fl::u16 numLeds, fl::u8 target_brightness, fl::u32 max_power_mW)
 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)
 Determines the highest brightness level you can use and still stay under the specified power budget for all sets 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)
 Determines the highest brightness level you can use and still stay under the specified power budget for a given set of LEDs.
 
fl::u32 calculate_unscaled_power_mW (const CRGB *ledbuffer, fl::u16 numLeds)
 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)
 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, const fl::Rgbw &rgbw)
 Same, for a strip driven through the RGBW conversion.
 
fl::u32 controller_dither_reserve_mW (const fl::CLEDController &controller)
 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 controller_unscaled_power_mW (const fl::CLEDController &controller)
 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)
 The most BINARY_DITHER can add to one latched frame of leds, in mW (#4342, contract R4: "quantization reserve").
 
fl::u32 scale_power_for_brightness (fl::u32 total_mW, fl::u8 brightness)
 Applies the configured power-scaling response to a total power value.