From 54ee1e47c195af63e4e63f888fab4da7b77bb5e6 Mon Sep 17 00:00:00 2001 From: The-Spirit Date: Fri, 5 Feb 2021 14:45:18 +0100 Subject: [PATCH] Brightness adjustement Reduce brightness when writing the color values. --- .gitignore | 2 ++ ws2812b.py | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b9bd87 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +*.bak diff --git a/ws2812b.py b/ws2812b.py index 761e51f..4dd9815 100644 --- a/ws2812b.py +++ b/ws2812b.py @@ -26,7 +26,19 @@ class ws2812b: self.sm.active(1) self.num_leds = num_leds self.delay = delay - + self.brightnessvalue = 255 + + # Set the overal value to adjust brightness when updating leds + def brightness(self, brightness = None): + if brightness == None: + return self.brightnessvalue + else: + if (brightness < 1): + brightness = 1 + if (brightness > 255): + brightness = 255 + self.brightnessvalue = brightness + # Create a gradient with two RGB colors between "pixel1" and "pixel2" (inclusive) def set_pixel_line_gradient(self, pixel1, pixel2, left_red, left_green, left_blue, right_red, right_green, right_blue): if pixel2 - pixel1 == 0: return @@ -48,6 +60,11 @@ class ws2812b: self.set_pixel(i, red, green, blue) def set_pixel(self, pixel_num, red, green, blue): + # Adjust color values with brightnesslevel + blue = round(blue * (self.brightness() / 255)) + red = round(red * (self.brightness() / 255)) + green = round(green * (self.brightness() / 255)) + self.pixels[pixel_num] = blue | red << 8 | green << 16 def show(self):