9969| 5
|
[入门教程] 【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界 |
NeoPixels也被称为WS2812 LED彩带,是连接在一起的全彩色led灯串。你可以设置他它们的红色,绿色和蓝色值, 在0到255之间。neopixel模块可通过精确的时间控制,生成WS2812控制信号。 【实验目的】 1、认识掌控输入输出引脚,初步学习掌控模拟引脚的使用 2、练习WS2812 LED彩带的各种代码控制,实现炫目效果。 【器材准备】 1、掌控板 1 2、DF micro:bit电机扩展板 1 (含电源线) 3、WS2812 LED彩灯带 1(本例使用了DF的30灯灯带) 【1】点亮整条灯带 [mw_shl_code=python,true]from mpython import * import machine, neopixel # 定义引脚 经不完全测试 如下引脚可用(等库完善后再修改) p8 = machine.Pin(26) p13 = machine.Pin(18) p14 = machine.Pin(19) p15 = machine.Pin(21) p16 = machine.Pin(5) np = neopixel.NeoPixel(p16, n=30, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np.fill((50, 0, 50)) # 填充所有LED像素 r g b 取值0-255 np.write() # 数据写入执行[/mw_shl_code] 【2】点亮第n个灯 [mw_shl_code=python,true]from mpython import * import machine, neopixel # 定义引脚 经不完全测试 如下引脚可用(等库完善后再修改) p8 = machine.Pin(26) p13 = machine.Pin(18) p14 = machine.Pin(19) p15 = machine.Pin(21) p16 = machine.Pin(5) np = neopixel.NeoPixel(p16, n=30, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np[0] = (255, 255, 255) # 设置第一个LED像素为白色 np.write() # 数据写入执行[/mw_shl_code] 【3】流水灯 [mw_shl_code=python,true]from mpython import * import time import machine, neopixel # 定义引脚 经不完全测试 如下引脚可用(等库完善后再修改) p8 = machine.Pin(26) p13 = machine.Pin(18) p14 = machine.Pin(19) p15 = machine.Pin(21) p16 = machine.Pin(5) np = neopixel.NeoPixel(p16, n=30, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 while True: for i in range(30): np.fill((0, 0, 0)) np = (255, 0, 255) # 改变颜色 np.write() # 数据写入执行 time.sleep_ms(10) # 改变时间[/mw_shl_code] 【4】经大圣老师验证过的官方例程这个例程可厉害,研究好了,可以学好多东西。 [mw_shl_code=python,true]from mpython import * import time import machine, neopixel # 定义引脚 经不完全测试 如下引脚可用(等库完善后再修改) p8 = machine.Pin(26) p13 = machine.Pin(18) p14 = machine.Pin(19) p15 = machine.Pin(21) p16 = machine.Pin(5) np = neopixel.NeoPixel(p16, n=30, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 def demo(np): n = np.n # cycle 白色流水灯效 for i in range(4 * n): for j in range(n): np[j] = (0, 0, 0) np[i % n] = (255, 255, 255) np.write() time.sleep_ms(25) # bounce 蓝色背景 暗灯流水灯效 for i in range(4 * n): for j in range(n): np[j] = (0, 0, 128) if (i // n) % 2 == 0: np[i % n] = (0, 0, 0) else: np[n - 1 - (i % n)] = (0, 0, 0) np.write() time.sleep_ms(50) # fade in/out 红色呼吸灯效 for i in range(0, 4 * 256, 8): for j in range(n): if (i // 256) % 2 == 0: val = i & 0xff else: val = 255 - (i & 0xff) np[j] = (val, 0, 0) np.write() # clear 灭灯 for i in range(n): np = (0, 0, 0) np.write() while True: demo(np)[/mw_shl_code] 【扩展练习】 自己玩起来吧。 超多灯效可玩。 |
44107900 发表于 2018-12-23 18:09 扩展板名字上有链接的。https://www.dfrobot.com.cn/goods-1730.html |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed