Skip to content

Commit 42c3b61

Browse files
committed
add length and brightness capabilities
1 parent ff67791 commit 42c3b61

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

neopixel.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66

77
class NeoPixel:
88
ORDER = (1, 0, 2, 3)
9-
def __init__(self, pin, n, bpp=3):
9+
def __init__(self, pin, n, bpp=3, brightness=1.0):
1010
self.pin = digitalio.DigitalInOut(pin)
1111
self.n = n
1212
self.bpp = bpp
1313
self.buf = bytearray(n * bpp)
1414
self.pin.switch_to_output()
15+
self.brightness = brightness
1516

1617
def __enter__(self):
1718
return self
@@ -29,9 +30,20 @@ def __getitem__(self, index):
2930
return tuple(self.buf[offset + self.ORDER[i]]
3031
for i in range(self.bpp))
3132

33+
def __len__(self):
34+
return self.n
35+
36+
def set_brightness(self, range):
37+
if (range > 1.0):
38+
self.brightness = 1.0
39+
elif (range < 0):
40+
self.brightness = 0.0
41+
else:
42+
self.brightness = range
43+
3244
def fill(self, color):
3345
for i in range(self.n):
3446
self[i] = color
3547

3648
def write(self):
37-
neopixel_write(self.pin, self.buf)
49+
neopixel_write(self.pin, bytearray([int(i * self.brightness) for i in self.buf]))

0 commit comments

Comments
 (0)