上图为真实的效果图每个单独的LED均可单独控制
WS2812B线路图
VSS零线(地线)
DIN数据输入(控制颜色以及亮度)
DOUT数据输出(将数据传给下一个LED)
VDD电源供电 (+3.5V~+5.3V)
WS2812B灯带线路图
WS2812B接线方法
安装插件sudo apt-get install python-pip
sudo pip install rpi_ws281x
编写脚本ws2812b.pyimport time
import random
from rpi_ws281x import Adafruit_NeoPixel, Color
# LED 配置:
LED_COUNT = 10 # 要控制LED的数量.
LED_PIN = 18 # GPIO接口 (PWM编码).
LED_BRIGHTNESS = 255 # 设置LED亮度 (0-255)
#以下LED配置无需修改
LED_FREQ_HZ = 800000 # LED信号频率(以赫兹为单位)(通常为800khz)
LED_DMA = 10 # 用于生成信号的DMA通道(尝试5)
LED_INVERT = False # 反转信号(使用NPN晶体管电平移位时)
# 创建NeoPixel对象
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS)
# 初始化库
strip.begin()
#设置整体亮度 关闭LED为0 最亮为255 范围0-255
#该函数与下面的设置颜色都不会直接对LED进行修改,可以理解为将修改数据保存到缓存区。
#strip.setBrightness(200)
#numPixels()函数介绍:取NeoPixel对象创建时设置的LED数量
for i in range(0,strip.numPixels()): #设置个循环(循环次数为LED数量)
# setPixelColor()函数介绍:设置LED色值(RGB).
#参数1:LED 的ID (从0开始, 比如第5个LED)
#参数2:RGB色值 Color()RGB转Color值,参数依次为R,G,B
#例子:设置第5个LED颜色为红色
# strip.setPixelColor(4, Color(255,0,0))
#该函数不会直接对LED进行修改,可以理解为将修改数据保存到缓存区。
strip.setPixelColor(i, Color(0,0,255))
#提交缓存区的修改数据到WS2812B,以显示效果
strip.show()
time.sleep(0.1) #延迟0.1秒
执行脚本sudo python ws2812b.py #需要管理员权限
# 执行完毕后其效果为:
# 一共10个LED,除了第5个LED为红色,其他LED全是蓝色
# 其源码已经做了很详细的标注。
# 注意:写脚本不要把注释写进去,因为不支持中文
本文介绍了如何使用树莓派通过Python控制WS2812B LED灯带,包括线路图解析、接线方法以及安装和运行脚本的步骤。示例代码展示了如何设置不同颜色的LED并显示效果。
3007

被折叠的 条评论
为什么被折叠?



