WS2812灯带 (modules.ws2812)

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

目前最多支持12路灯带

1. 构造函数

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 对象

1.1. 参数

  • 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通道,用户一般不考虑

2. 方法

2.1. set_led

class_ws2812.set_led(num, color)

参数

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

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

返回值

2.2. display

class_ws2812.display()

参数

返回值

3. 例程0

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()

4. 例程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

powered by GitbookFile Modify: 2020-09-11 12:07:11

results matching ""

    No results matching ""