neopixel模块可使用Neopixel(WS2812)(单独可寻址的RGB LED条带)与Microbit连接。
代码如下:
import neopixel
from machine import Pin
import time
import urandom
GBIO_IN = Pin(48) # 控制信号输入引脚
LED_NUM = 1 # LED灯的数量
# class NeoPixel(pin, n, bpp=3, timing=0)
# pin :输出引脚,可使用引脚见下文
# n :LED灯的个数
# bpp:
# 3:默认为3元组RGB
# 4:对于具有3种以上颜色的LED,例如RGBW像素或RGBY像素,采用4元组RGBY或RGBY像素
# timing:默认等于0,为400KHz速率;等于1,为800KHz速率
#
CL = neopixel.NeoPixel(pin=GBIO_IN, n=LED_NUM, timing=1) # 创建控制对象
print(CL)
CL.fill((255, 0, 0)) # GRB填充数据(RGB顺序, 0为不亮,255为全亮)彩色灯珠显示红色
CL.write() # 写入数据
time.sleep(1)
CL.fill((0, 255, 0)) # GRB填充数据(RGB顺序, 0为不亮,255为全亮)彩色灯珠显示绿色
CL.write() # 写入数据
time.sleep(1)
CL.fill((0, 0, 255)) # GRB填充数据(RGB顺序, 0为不亮,255为全亮)彩色灯珠显示蓝色
CL.write() # 写入数据
time.sleep(1)
while True:
r = urandom.randint(0, 255)
g = urandom.randint(0, 255)
b = urandom.randint(0, 255)
for i in range(LED_NUM):
CL[i] = (r, g, b) # 依次设置LED灯珠的颜色
CL.write() # 写入数据
time.sleep_ms(500)
效果:灯珠先按顺序显示红绿蓝,之后显示随机颜色