[作品提交] 【follow me第二季第一期】基础一,炫彩LED跑马灯

crimsonsnow   2024-9-1 19:40 楼主

控制板载neopixel LED

使用neopixel扩展库,控制WS2812B灯带,10颗灯珠使用了MCU的一个IO ,但是可以通过程序分别控制每一个的颜色和明暗

 

在前人的经验里找到了一个教学网站Adafruit Circuit Playground Express - Blocks / Javascript editor

MakeCode 是微软开发的一款基于图形化编程的在线编程工具,它支持 Adafruit Circuit Playground Express,我们只需要在浏览器中打开 MakeCode 的网站,然后选择 Adafruit Circuit Playground Express,即可开始编程。

总的来说这块板子的目标就是让入门级的人都能轻松使用的感觉,灯带的集成化也是这个目的

还蛮适合那种艺术家创作使用的

根据视频例程,可以做出跑马灯的几种模式,比如先转完一圈再换个颜色,或者不断改变颜色的彩虹环

import time
import board
import neopixel
from rainbowio import colorwheel
import digitalio


# 自定义常量
BOARD_NEO_QTY = 10
BOARD_NEQ_BRI = 0.2

RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
OFF = (0, 0, 0)

# 初始化 NeoPixel
pixels = neopixel.NeoPixel(board.NEOPIXEL, BOARD_NEO_QTY, brightness=BOARD_NEQ_BRI,auto_write=False)

#模式切换
color_chase_demo = 0
flash_demo = 0
rainbow_demo = 0
rainbow_cycle_demo = 1

# 每0.5秒,按顺序改变一个灯珠的颜色
def color_chase(color, wait):
    for i in range(10):
        pixels[i] = color
        time.sleep(0.1)
        pixels.show()
    time.sleep(0.4)

def rainbow_cycle(wait):
    for j in range(255):
        for i in range(10):
            rc_index = (i * 256 // 10) + j * 5
            pixels[i] = colorwheel(rc_index & 255)

        time.sleep(0.1)
        pixels.show()


while True:
    rainbow_cycle(0.1)
    '''color_chase(RED, 0.1)
    color_chase(YELLOW, 0.1)
    color_chase(GREEN, 0.1)
    color_chase(CYAN, 0.1)
    color_chase(BLUE, 0.1)
    color_chase(PURPLE, 0.1)
    color_chase(OFF, 0.1)'''

如果要转一圈换一个颜色的模式,就把彩虹环函数注释,放出下面的循环函数

不知道为啥视频传不上来

86bed4db03f6298fb3cc041c16506df.jpg  

57b4086d40cf380ac4090b6a7c41290.jpg  

本帖最后由 crimsonsnow 于 2024-9-1 19:42 编辑

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复