|
控制WS2812B其实就是控制主板内置的RGB LED,可以使用CircuitPython代码来控制这个LED的颜色和亮度。
NeoPixel是WS281x系列可寻址RGB led,它包含三个led——一个红色的,一个绿色的和一个蓝色的——以及一个驱动芯片,它们可以单独使用(如板上的内置LED),也可以串联在一起使用,不过板载只有一个。
代码如下:
import time
import board
import neopixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixel.brightness = 0.3
while True:
pixel.fill((255, 0, 0))
time.sleep(0.5)
pixel.fill((0, 255, 0))
time.sleep(0.5)
pixel.fill((0, 0, 255))
time.sleep(0.5)
这里需要注意一下:import neopixel不属于基础模块,记得获取并放到lib文件夹里
实现呼吸灯:
代码如下:
import time
import board
import neopixel
from rainbowio import colorwheel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixel.brightness = 0.3
def rainbow(delay):
for color_value in range(255):
pixel[0] = colorwheel(color_value)
time.sleep(delay)
while True:
rainbow(0.03)
这里有个小疑问:没有找到from rainbowio import colorwheel,这个是内置的吗?
Adafruit对于板上外设的使用方法提供了全方位的封装,并且在官方网站上提供了丰富演示样例,虽然可以用,可是对于初学者来说,不太了解其内部,面向对象的操作方式总是让人想了解内部。