Skip to content

Commit 7c6103e

Browse files
authored
Merge pull request #12 from kattni/neopixel-demo-code
Add toggle demo.
2 parents 78f2165 + 49d438f commit 7c6103e

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

examples/trellism4_neopixel_toggle.py

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import adafruit_trellism4
2+
3+
trellis = adafruit_trellism4.TrellisM4Express()
4+
5+
6+
def wheel(pos):
7+
if pos < 0 or pos > 255:
8+
return 0, 0, 0
9+
if pos < 85:
10+
return int(255 - pos * 3), int(pos * 3), 0
11+
if pos < 170:
12+
pos -= 85
13+
return 0, int(255 - pos * 3), int(pos * 3)
14+
pos -= 170
15+
return int(pos * 3), 0, int(255 - (pos * 3))
16+
17+
18+
led_on = []
19+
20+
for x in range(trellis.pixels.width):
21+
led_on.append([])
22+
for y in range(trellis.pixels.height):
23+
led_on[x].append(False)
24+
25+
trellis.pixels.fill((0, 0, 0))
26+
27+
current_press = set()
28+
29+
while True:
30+
pressed = set(trellis.pressed_keys)
31+
32+
for press in pressed - current_press:
33+
x, y = press
34+
if not led_on[x][y]:
35+
print("Turning on:", press)
36+
pixel_index = ((x + (y * 8)) * 256 // 32)
37+
trellis.pixels[x, y] = wheel(pixel_index & 255)
38+
led_on[x][y] = True
39+
40+
else:
41+
print("Turning off:", press)
42+
trellis.pixels[x, y] = (0, 0, 0)
43+
led_on[x][y] = False
44+
45+
current_press = pressed

0 commit comments

Comments
 (0)