modules.ws2812(WS2812 灯带)

本模块使用K210I2S进行模块的驱动,所以在使用的过程中需要注意是否冲突

目前最多支持12路灯带

构造函数

from modules import ws2812
class ws2812(led_pin=-1,led_num=-1,i2s_num=I2S_DEVICE_2,i2s_chn=I2S_CHANNEL_3,i2s_dma_chn=DMAC_CHANNEL1)

通过指定参数新建一个 ws2812 对象

参数

  • led_pin: 灯带数据线连接的引脚,比如 board_info.D[4]

  • led_num: 灯带一共有多少颗灯珠

  • i2s_num: 该对象使用哪个 I2S 设备进行驱动,默认为 I2S_DEVICE_2,取值范围为 0-2

  • i2s_chn: 该对象使用哪个 I2S 通道,默认为 I2S_CHANNEL_3,取值范围为 0-3

  • i2s_dma_chn: 该对象使用的DMA通道,用户一般不考虑

方法

set_led

设置某个 led 灯颜色

class_ws2812.set_led(num, color)

参数

  • num : 第 N 颗灯珠,从 0 开始

  • color : 该灯珠赋值的颜色,为 tuple 类型, (R,G,B)

返回值

display

开始工作,设置完成后调用

class_ws2812.display()

参数

返回值

例程0

30 个 LED 灯全部亮红色

from modules import ws2812
class_ws2812 = ws2812(board_info.D[4],30)
for i in range(30):
    class_ws2812.set_led(i,(0xff,0,0))
class_ws2812.display()

例程1

灯带红色渐变

from modules import ws2812
class_ws2812 = ws2812(board_info.D[4],30)
r=0
dir = True
while True:
    if dir:
        r += 1
    else:
        r -= 1
    if r>=255:
        r = 255
        dir = False
    elif r<0:
        r = 0
        dir = True
    for i in range(30):
        a = class_ws2812.set_led(i,(r,0,0))
    a=class_ws2812.display()

以上例程,可见MaixPy_scripts