Datasheet
When declaring a NeoPixel object in CircuitPython, the object's argument list requires the output pin you'll use and the
number of pixels. There's two optional arguments, brightness (range from 0 (off) to 1.0 (full brightness)) and auto_write .
When auto_write is set to True , every pixel change is immediately written to the strip…this is easier to use but
way
slower. If you set auto_write=False then you will have to call strip.show() when you want to actually write color data out.
You can easily set colors by indexing into the location strip[n] = (red, green, blue) . For example, strip[0] = (100, 0, 0) will
set the first pixel to a medium-brightness red, and strip[2] = (0, 255, 0) will set the third pixel to bright green. Then, if you
have auto_write=False don't forget to call strip.show() .
# CircuitPython demo - NeoPixel
import board
import neopixel
import time
pixpin = board.D1
numpix = 10
strip = neopixel.NeoPixel(pixpin, numpix, brightness=0.3, auto_write=False)
def wheel(pos):
# Input a value 0 to 255 to get a color value.
# The colours are a transition r - g - b - back to r.
if (pos < 0) or (pos > 255):
return (0, 0, 0)
if (pos < 85):
return (int(pos * 3), int(255 - (pos*3)), 0)
elif (pos < 170):
pos -= 85
return (int(255 - pos*3), 0, int(pos*3))
else:
pos -= 170
return (0, int(pos*3), int(255 - pos*3))
def rainbow_cycle(wait):
for j in range(255):
for i in range(len(strip)):
idx = int ((i * 256 / len(strip)) + j)
strip[i] = wheel(idx & 255)
strip.write()
time.sleep(wait)
while True:
strip.fill((255, 0, 0))
strip.write()
time.sleep(1)
strip.fill((0, 255, 0))
strip.write()
time.sleep(1)
strip.fill((0, 0, 255))
strip.write()
time.sleep(1)
rainbow_cycle(0.001) # rainbowcycle with 1ms delay per step
© Adafruit Industries https://learn.adafruit.com/adafruit-neopixel-uberguide Page 54 of 68