Using the on-Board Circuit Playground Express NeoPixels
The Circuit Playground Express has ten Neopixels of its own that can be programmed independently from the Crickit single NeoPixel and Crickit NeoPixel terminal block connection.
MakeCode
For the Crickit NeoPixels we used the NEOPIXEL subgroup of the LIGHT block group in MakeCode. For the Circuit Playground Express, you use the blocks directly in the LIGHT block group, not the NEOPIXELS subblock blocks.
Below are two example programs (use one or another). The first just sets all the Circuit Playground Express LEDs to green. The second shows a rainbow animation for 5 seconds (= 5000 milliseconds), then shows a sparkle animation for another 5 seconds then loops back.
More on MakeCode and the Circuit Playground Express on the Introduction to Circuit Playground Express tutorial.
CircuitPython
It takes a bit more code to do NeoPixels in CircuitPython. The easiest way is to use the adafruit_circuitplayground.express
library which sets everything up nicely. But the CPX library, as it's called, is large and when added to the Crickit support library adafruit_crickit
, it does not leave a great amount of room for user programs.
The same effects in the CPX library may be done with the neopixel
library, it is just coded a bit differently.
The code below shows opening up the NeoPixels on-board and performing some red and blue color animation which you are free to change as you wish. The code for the strips to change color in previous examples will work here also with appropriate variable name changes for the NeoPixel object opened.
# SPDX-FileCopyrightText: 2018 Anne Barela for Adafruit Industries # # SPDX-License-Identifier: MIT # Use the 10 NeoPixels on Circuit Playground Express via the # Adafruit neopixel library import time import neopixel import board # Set up the 10 Circuit Playground Express NeoPixels half bright CPX_pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.5) # slowly power up via blue color for i in range(50): CPX_pixels.fill((0, 0, i)) time.sleep(0.05) # blast off! CPX_pixels.fill((255, 0, 0)) while True: # pulse effect for i in range(255, 0, -5): CPX_pixels.fill((i, 0, 0)) for i in range(0, 255, 5): CPX_pixels.fill((i, 0, 0))