micropython中文社区 microbit_用MicroPython玩Newbit(六)-- neopixle

microbit/newbit的MicroPython固件中,内置了neopixel彩灯的控制,我们可以使用任意一个GPIO去控制neopixel,支持任意数量的彩灯。

import neopixel

np = neopixel.NeoPixel(pin1, 8)

np[0] = (0, 0, 200)

np[1] = (0, 50, 100)

np[2] = (200, 0, 0)

np.show()

函数 neopixel.NeoPixel(PIN, NUM) 用来创建 neopixel 对象,它有两个参数,第一个是GPIO,第二个是彩灯的数量。

neopixel 对象是一个元组列表,每个列表项都是由 RGB 三种颜色组成的元组。RGB参数的范围是 0-255,三种颜色组合起来就有 256 x 256 x 256 = 1.67M种颜色。

颜色参数写入列表后并不能改变彩灯,还需要调用函数 show(),才会更新。如果要清除彩灯,可以调用函数 clear().

官方的例子,随机显示彩灯。

"""

neopixel_random.py

Repeatedly displays random colours onto the LED strip.

This example requires a strip of 8 Neopixels (WS2812) connected to pin0.

"""

from microbit import *

import neopixel

from random import randint

# Setup the Neopixel strip on pin0 with a length of 8 pixels

np = neopixel.NeoPixel(pin0, 8)

while True:

#Iterate over each LED in the strip

for pixel_id in range(0, len(np)):

red = randint(0, 60)

green = randint(0, 60)

blue = randint(0, 60)

# Assign the current LED a random red, green and blue value between 0 and 60

np[pixel_id] = (red, green, blue)

# Display the current pixel data on the Neopixel strip

np.show()

sleep(100)

图形化编程

003412em3kenf3hy323heh.jpg 

对应的mpy代码:

import neopixel

import random

from microbit import *

np = neopixel.NeoPixel(pin0, 8)

while True:

np[(random.randint(0, 7))] = ((random.randint(1, 50)), (random.randint(1, 50)), (random.randint(1, 50)))

np.show()

sleep(100)

如果直接用 microbit/newbit的3.3V供电,注意不要控制太多LED,因为LDO的输出功率有限,很容易造成过热保护。超过8个LED最好就用外部电源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值