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