Skip to content

Commit c33a760

Browse files
dpgeorgepfalcon
authored andcommitted
esp8266/tests: Add neopixel.py test.
1 parent 3962766 commit c33a760

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

esp8266/tests/neopixel.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import time
2+
import machine
3+
from esp import neopixel_write
4+
5+
class NeoPixel:
6+
def __init__(self, pin, n):
7+
self.pin = pin
8+
self.n = n
9+
self.buf = bytearray(n * 3)
10+
11+
def __setitem__(self, index, val):
12+
r, g, b = val
13+
self.buf[index * 3] = g
14+
self.buf[index * 3 + 1] = r
15+
self.buf[index * 3 + 2] = b
16+
17+
def __getitem__(self, index):
18+
i = index * 3
19+
return self.buf[i], self.buf[i + 1], self.buf[i + 2]
20+
21+
def write(self):
22+
neopixel_write(self.pin, self.buf, True)
23+
24+
def test():
25+
# put a neopixel strip on GPIO4
26+
p = machine.Pin(4, machine.Pin.OUT)
27+
np = NeoPixel(p, 8)
28+
n = np.n
29+
30+
# cycle
31+
for i in range(4 * n):
32+
for j in range(n):
33+
np[j] = (0, 0, 0)
34+
np[i % n] = (255, 255, 255)
35+
np.write()
36+
time.sleep_ms(25)
37+
38+
# bounce
39+
for i in range(4 * n):
40+
for j in range(n):
41+
np[j] = (0, 0, 128)
42+
if (i // n) % 2 == 0:
43+
np[i % n] = (0, 0, 0)
44+
else:
45+
np[n - 1 - (i % n)] = (0, 0, 0)
46+
np.write()
47+
time.sleep_ms(60)
48+
49+
# fade in/out
50+
for i in range(0, 4 * 256, 8):
51+
for j in range(n):
52+
if (i // 256) % 2 == 0:
53+
val = i & 0xff
54+
else:
55+
val = 255 - (i & 0xff)
56+
np[j] = (val, 0, 0)
57+
np.write()
58+
59+
# clear
60+
for i in range(n):
61+
np[i] = (0, 0, 0)
62+
np.write()
63+
64+
test()

0 commit comments

Comments
 (0)