rzyzzxw 发表于 2018-11-15 19:49:32

【掌控】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:}


44107900 发表于 2018-12-23 18:09:32

DF micro:bit电机扩展板可以插掌控板?哪里有销售?

rzyzzxw 发表于 2018-12-23 18:30:01

44107900 发表于 2018-12-23 18:09
DF micro:bit电机扩展板可以插掌控板?哪里有销售?

扩展板名字上有链接的。https://www.dfrobot.com.cn/goods-1730.html

liuyu1009 发表于 2019-7-22 16:56:42

求详细教程,例如线如何连接等等,小白求助

rzyzzxw 发表于 2019-7-22 20:01:45

本帖最后由 rzyzzxw 于 2019-7-22 20:03 编辑

liuyu1009 发表于 2019-7-22 16:56
求详细教程,例如线如何连接等等,小白求助
mPythonX中有图形化编程,也自带例程。接线自定义。MIND+中也很方便编程。

liuyu1009 发表于 2019-7-23 11:02:23

我买了商城里的灯带,加掌控板自家的扩展板,怎么也点不亮,是因为工作电压不够吗?扩展板提供的是3v3的,灯带需要5v的
页: [1]
查看完整版本: 【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界