From b13b1a6c7151a4b002845af700bee55e5e177e91 Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Wed, 5 May 2021 20:45:12 +0200 Subject: [PATCH] led_effects: rainbow wheel in both directions --- ampel-firmware/led_effects.cpp | 5 +++-- ampel-firmware/led_effects.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ampel-firmware/led_effects.cpp b/ampel-firmware/led_effects.cpp index 061b6f8..45b8c0b 100644 --- a/ampel-firmware/led_effects.cpp +++ b/ampel-firmware/led_effects.cpp @@ -168,17 +168,18 @@ namespace led_effects { } } - void showRainbowWheel(uint16_t duration_ms, uint16_t hue_increment) { + void showRainbowWheel(uint16_t duration_ms) { if (config::night_mode) { return; } static uint16_t wheel_offset = 0; + static uint16_t sine_offset = 0; unsigned long t0 = millis(); pixels.setBrightness(config::max_brightness); while (millis() - t0 < duration_ms) { for (int i = 0; i < NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.ColorHSV(i * 65535 / NUMPIXELS + wheel_offset)); - wheel_offset += hue_increment; + wheel_offset += (pixels.sine8(sine_offset++ / 50) - 127) / 2; } pixels.show(); delay(10); diff --git a/ampel-firmware/led_effects.h b/ampel-firmware/led_effects.h index 96367ef..a910d30 100644 --- a/ampel-firmware/led_effects.h +++ b/ampel-firmware/led_effects.h @@ -29,7 +29,7 @@ namespace led_effects { int countdownToZero(); void showWaitingLED(uint32_t color); void showKITTWheel(uint32_t color, uint16_t duration_s = 2); - void showRainbowWheel(uint16_t duration_ms = 1000, uint16_t hue_increment = 50); + void showRainbowWheel(uint16_t duration_ms = 1000); void displayCO2color(uint16_t co2); } #endif -- GitLab