【掌控】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】点亮整条灯带
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()# 数据写入执行
【2】点亮第n个灯
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 = (255, 255, 255) # 设置第一个LED像素为白色
np.write()# 数据写入执行
【3】流水灯
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)# 改变时间
【4】经大圣老师验证过的官方例程这个例程可厉害,研究好了,可以学好多东西。{:5_149:}
http://v.youku.com/v_show/id_XMzkyMDk4ODExNg==.html?spm=a2h3j.8428770.3416059.1
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 = (0, 0, 0)
np = (255, 255, 255)
np.write()
time.sleep_ms(25)
# bounce蓝色背景 暗灯流水灯效
for i in range(4 * n):
for j in range(n):
np = (0, 0, 128)
if (i // n) % 2 == 0:
np = (0, 0, 0)
else:
np = (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 = (val, 0, 0)
np.write()
# clear灭灯
for i in range(n):
np = (0, 0, 0)
np.write()
while True:
demo(np)
【扩展练习】
自己玩起来吧。
超多灯效可玩。
{:5_150:}
DF micro:bit电机扩展板可以插掌控板?哪里有销售? 44107900 发表于 2018-12-23 18:09
DF micro:bit电机扩展板可以插掌控板?哪里有销售?
扩展板名字上有链接的。https://www.dfrobot.com.cn/goods-1730.html 求详细教程,例如线如何连接等等,小白求助 本帖最后由 rzyzzxw 于 2019-7-22 20:03 编辑
liuyu1009 发表于 2019-7-22 16:56
求详细教程,例如线如何连接等等,小白求助
mPythonX中有图形化编程,也自带例程。接线自定义。MIND+中也很方便编程。 我买了商城里的灯带,加掌控板自家的扩展板,怎么也点不亮,是因为工作电压不够吗?扩展板提供的是3v3的,灯带需要5v的
页:
[1]