树莓派4B跑个WS2812灯带

WS2812灯带在树莓派4B上的变化

今天尝试了一下,好多代码都变化了。
现在用的基本上就是要将树莓派的RPi.GPIO库都丢了。

sudo apt purge -y RPi.GPIO
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
sudo python3 -m pip install --force-reinstall adafruit-blinka

然后就安装这两个库够了。
灯带的5V接树莓派5V,当然,如果灯的数量多,建议额外供电,我就8个灯的灯带,够用。
GND接树莓派GND。
信号口D+接到树莓派物理接口12号,BCM的18号口上。
然后就可以写代码测试了。

import board
from time import sleep
import neopixel

pixels = neopixel.NeoPixel(board.D18, 8)

pixels.fill((0,255,0))

pixels[0] = (255,0,0)

while True:
    for x in range(0, 8):
        pixels[x] = (255, 0, 0)
        sleep(0.1)
        pixels.fill((0,255,0))

    for x in range(0, 8):
        pixels[x] = (255, 0, 0)
        sleep(0.1)
        pixels.fill((0,255,255))

    for x in range(0, 8):
        pixels[x] = (255, 0, 0)
        sleep(0.1)
        pixels.fill((0,0,255))

    for x in range(0, 8):
        pixels[x] = (0, 255, 0)
        sleep(0.1)
        pixels.fill((255,255,127))

    for x in range(0, 8):
        pixels[x] = (0, 255, 0)
        sleep(0.1)
        pixels.fill((255,255,0))

代码非常简单,不屑注释了。

import board
from time import sleep
import neopixel

pixels = neopixel.NeoPixel(board.D18, 8)

pixels.fill((0,255,0))

这段代码是初始化的部分。
运行以下代码以导入必要的模块,并初始化带有8个LED的NeoPixel灯带,如果你的NeoPixels连接到其他引脚,别忘了更改引脚,如果灯的数量不一样,也要改。
实例化后我用了fill方法来做操作了,有三个方法如下:

  • brightness - The overall brightness of the LED
  • fill - Color all pixels a given color.
  • show - Update the LED colors if auto_write is set to False.
    一般brightness是调亮度,fill就是填充颜色,show更新颜色。

    pixels[0] = (255,0,0)

    file
    就是点亮第一个灯,颜色为红色,(255,0,0) 就是 (R,G,B)三色的定义,每个灯都可以由3种颜色组合成N多种颜色,自己配置。

    pixels.fill((0, 255, 0))

    就是全部填充绿色。
    file
    就这么简单,其他自己琢磨吧。
    哦,最后给一张特写图:
    file
    file



    嗯,就这样。开心去浪吧!