麦昆上有4颗WS2812全彩色RGB LED,它使用P15控制。WS2812是一种串行控制的LED,它内部带有控制器,通过1个数据线传递控制命令,可以多个WS2812级联起来,用一个数据线就能控制多个WS2812。
在micropython中,控制WS2812需要使用到neopixel库,定义时需要两个参数,一个是控制引脚,另一个是WS2812的数量。
4个LED显示红绿蓝白,并循环旋转
- import neopixel
-
- np = neopixel.NeoPixel(pin15, 4)
- np[0] = (8, 0, 0)
- np[1] = (0, 8, 0)
- np[2] = (0, 0, 8)
- np[3] = (8, 8, 8)
- while 1:
- t= np[0]
- for i in range(3):
- np[i] = np[i+1]
- np[3] = t
- np.show()
- sleep(500)
红绿蓝依次渐亮
- import neopixel
-
- np = neopixel.NeoPixel(pin15, 4)
- n = 0
- while 1:
- r = g = b = 0
- for i in range(4):
- if n<16: r = 1
- elif n<32:g = 1
- else: b = 1
- np[i] = (r*n%16, g*n%16, b*n%16)
- np.show()
- n = (n + 1)%48
- sleep(100)
红绿蓝依次渐亮,然后渐暗,效果比上面更好
- import neopixel
-
- np = neopixel.NeoPixel(pin15, 4)
- n = 0
- while 1:
- r = g = b = 0
- for i in range(4):
- if n<16: r = 1
- elif n<32:g = 1
- else: b = 1
- if (n%16)<9:m=n%16
- else: m=16-n%16
- np[i] = (r*m%16, g*m%16, b*m%16)
- np.show()
- n = (n + 1)%48
- sleep(100)
此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处
本帖最后由 dcexpert 于 2019-5-20 12:54 编辑