SparkFun Top pHAT Hookup Guide
WS2812B LEDs
Note: This tutorial assumes you are using the latest version of Python 3. If this is your first time using Python or I2C hardware on a Raspberry Pi, please checkout our tutorial on Python Programming with the Raspberry Pi and the Raspberry Pi SPI and I2C Tutorial.
For the addressable LEDs, we will be using Adafruit's neopixel python package. The adafruit-circuitpython-neopixel
Python package is hosted on PyPi.
PyPi Installation
On systems that support PyPi installation via pip3
(use pip
for Python 2) is simple, using the following commands:
For all users (note: the user must have sudo privileges):
language:bash
sudo pip3 install adafruit-circuitpython-neopixel
For the current user:
language:bash
pip3 install adafruit-circuitpython-neopixel
sudo
command.Python Examples
Before users jump into operating the LEDs, it is recommended that they review the the Read the Docs documentation for the Python package and datasheet for the WS2812B LEDs. Below are a few examples for using the LEDs on the Top pHAT; don't forget that the LEDs are attached to pin 12 and
Example 1
This is a basic example setting the first, fourth, and fifth LEDs. The array is RGB, with the value indicating the brightness magnitude (0-255).
language:python
# Import Dependencies
import board
import neopixel
# Create the class object
pixels = neopixel.NeoPixel(board.D12, 6, auto_write=False)
# Set Pixel Configuration
pixels[0] = (10, 0, 0)
pixels[3] = (0, 10, 0)
pixels[4] = (0, 0, 10)
# Display Configuration
pixels.show()
Example 2
This is a basic example cycles through the LEDs individually setting them green.
language:python
# Import Dependencies
import board
import neopixel
import time
# Create the class object
pixels = neopixel.NeoPixel(board.D12, 6)
while True:
for i in range(6):
# Clear previous LED
if i == 0:
pixels[5] = (0,0,0)
else:
pixels[i-1]=(0,0,0)
# Set LED green
pixels[i]=(0,10,0)
# Delay
time.sleep(.2)