【掌控】mpython_29…掌控WS2812灯带&彩虹灯效
哪里有彩虹告诉我能不能把我的愿望还给我
听杰伦的彩虹
写彩虹灯效的帖子
【小目标】
1、用掌控实现彩虹灯效
2、尝试实现动起来的彩虹灯效
【器材】
1、掌控板 1
2、DF micro:bit电机扩展板1(带电源线)
3、30灯WSDL812灯带
4、浪漫的心情 少许
【效果】
【代码】
# 源代码来自邵子扬老师
# 汝州一中大圣老师修改测试
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(p13, n=30, bpp=3, timing = 1)
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率
# 定义彩虹灯效
def np_rainbow(np, num, bright=32, offset = 0):
rgb = ((255,0,0), (255,127,0), (255,255,0), (0,255,0), (0,255,255),(0,0,255),(136,0,255), (255,0,0))
for i in range(num):
t = 7*i/num
t0 = int(t)
r = round((rgb + (t-t0)*(rgb-rgb))*bright)>>8
g = round((rgb + (t-t0)*(rgb-rgb))*bright)>>8
b = round((rgb + (t-t0)*(rgb-rgb))*bright)>>8
np[(i+offset)%num] = (r, g, b)
np_rainbow(np, 30, bright=255, offset=0) # 设置彩虹条的长度、亮度、偏移量等参数
np.write()# 执行数据写入
【扩展】
渐渐增多的彩虹灯
https://v.youku.com/v_show/id_XMzkyMTUwODA0MA==.html?spm=a2h3j.8428770.3416059.1
# 代码前面相同
while 1:
for j in range(31):
np.fill((0, 0, 0))
np_rainbow(np, j, bright=255, offset=0) # 设置彩虹条的长度、亮度、偏移量等参数
np.write()# 执行数据写入
time.sleep(0.1)
【旋转的彩虹】
https://v.youku.com/v_show/id_XMzkyMTUyNTU2NA==.html?spm=a2h3j.8428770.3416059.1
n = 0
while 1:
np_rainbow(np, 30, bright=255, offset=n) # 设置彩虹条的长度、亮度、偏移量等参数
n += 1
np.write()# 执行数据写入
time.sleep(0.1)
将 n+=1 改为 n-=1就可以变为反向旋转。
感谢邵子扬老师论坛教程。
https://www.micropython.org.cn/bbs/forum.php?mod=viewthread&tid=790
页:
[1]