diff --git a/led_effects.cpp b/led_effects.cpp index e8523cbc0131310ecb7c200539f039edf5e7230d..c85ec6e8233cdd12447c66a0449899ba110dd186 100644 --- a/led_effects.cpp +++ b/led_effects.cpp @@ -11,10 +11,9 @@ namespace config { /***************************************************************** * Configuration (calculated from above values) * *****************************************************************/ -namespace config //TODO: Use a class instead. NightMode could then be another state. +namespace config //NOTE: Use a class instead? NightMode could then be another state. { - const float average_brightness = 0.5 * (config::max_brightness + config::min_brightness); - const float brightness_amplitude = 0.5 * (config::max_brightness - config::min_brightness); + const uint8_t brightness_amplitude = config::max_brightness - config::min_brightness; bool night_mode = false; } @@ -176,9 +175,9 @@ namespace LedEffects { void breathe(int16_t co2) { if (!config::night_mode) { static uint16_t breathing_offset = 0; - //TODO: use integer sine - pixels.setBrightness( - static_cast<int>(config::average_brightness + cos(breathing_offset * 0.1) * config::brightness_amplitude)); + uint16_t brightness = config::min_brightness + + pixels.sine8(breathing_offset * 3) * config::brightness_amplitude / 255; + pixels.setBrightness(brightness); pixels.show(); breathing_offset++; }