I only need 3 neopixels from the strip, so I cut after the 3rd neopixel.
After I ran the various version of the below code, I connected my power supply to only the hot and ground of the neopixels and the first neopixel lit up white.
I know the 3pin JST ports are marked incorrectly and have tried changing the following:
1. added PyPortal library references
2. changed the pixel pin to "pixel_pin = board.D3" and I tried "pixel_pin = board.D4"
Also tried "d3" and d4"
3. Then I tried commenting out the "pixels.fill((0, 255, 0))" and uncommenting the "pixels.fill((0, 255, 0, 0))" on all three sections.
4. Changed "RDER= RGB" to "RDER = neopixel.RGBW" and "RDER = neopixel.GRBW"
The lights do not come on at all.
I am at a loss. Thank you for your help!
Code: Select all
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
import board
import neopixel
from adafruit_pyportal import PyPortal
# On CircuitPlayground Express, and boards with built in status NeoPixel -> board.NEOPIXEL
# Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1
pixel_pin = board.NEOPIXEL
# On a Raspberry pi, use this instead, not all pins are supported
pixel_pin = board.D3
# The number of NeoPixels
num_pixels = 3
# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!
# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.
ORDER = neopixel.GRBW
pixels = neopixel.NeoPixel(
pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
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:
r = g = b = 0
elif pos < 85:
r = int(pos * 3)
g = int(255 - pos * 3)
b = 0
elif pos < 170:
pos -= 85
r = int(255 - pos * 3)
g = 0
b = int(pos * 3)
else:
pos -= 170
r = 0
g = int(pos * 3)
b = int(255 - pos * 3)
return (r, g, b) if ORDER in (neopixel.RGB, neopixel.GRB) else (r, g, b, 0)
def rainbow_cycle(wait):
for j in range(255):
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)
while True:
# Comment this line out if you have RGBW/GRBW NeoPixels
#pixels.fill((255, 0, 0))
# Uncomment this line if you have RGBW/GRBW NeoPixels
pixels.fill((255, 0, 0, 0))
pixels.show()
time.sleep(1)
# Comment this line out if you have RGBW/GRBW NeoPixels
#pixels.fill((0, 255, 0))
# Uncomment this line if you have RGBW/GRBW NeoPixels
pixels.fill((0, 255, 0, 0))
pixels.show()
time.sleep(1)
# Comment this line out if you have RGBW/GRBW NeoPixels
#pixels.fill((0, 0, 255))
# Uncomment this line if you have RGBW/GRBW NeoPixels
pixels.fill((0, 0, 255, 0))
pixels.show()
time.sleep(1)
rainbow_cycle(0.001) # rainbow cycle with 1ms delay per step