博主拿到一块ws2812b灯带, 就想着赶紧尝试点亮,但是发现一不会连线 二不会代码

可谓是一窍不通,网上的教程也都不是特别详细,我经过多次踩坑终于成功点亮。于是我便想把我的开发过程重温一遍。

应该是最详细的了。

需要材料:

1、已经成功连接显示器的树莓派开发板(具体没有什么要求)

2、ws2812b灯带

3、杜邦线三根 公对母(一段是接口 ,一端是针脚)

一、连线

对于灯带,如果只有一串的话只需要将其带插头的一端连上即可。其带针脚一端是多组灯带串联时候用。

然后要知道,对于要连的三根线,红色是正级,绿色是信号线,白色是负极。这个要结合树莓派的针脚,对应连接

最后要知道,树莓派的针脚, 标有5V的代表是正极 输出5V电压(这里灯带需要的就是5V电压), 标有GND的 应该接负极, 之后与信号线相接的有许多,这里用标有#18的针脚。

这样就算接线完成了

二、代码部分

这里需要第三方库 rpi_ws281x 库

在终端(ctrl + alt + t)中通过pip下载该库

推荐使用sudo pip3 install rpi_ws281x

其他指令安装可能对点亮有影响

之后在py文件中复制以下代码

import time
from rpi_ws281x import PixelStrip, Color
import argparseLED_COUNT = 16        # LED灯的个数
LED_PIN = 18          # DI端接GPIO18# 以下可以不用改
LED_FREQ_HZ = 800000  # LED signal frequency in hertz (usually 800khz)
LED_DMA = 10          # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 255  # Set to 0 for darkest and 255 for brightest
LED_INVERT = False    # True to invert the signal (when using NPN transistor level shift)
LED_CHANNEL = 0       # set to '1' for GPIOs 13, 19, 41, 45 or 53# 以下为LED模式变换的各个函数
def colorWipe(strip, color, wait_ms=20):"""一次擦除显示像素的颜色."""for i in range(strip.numPixels()):strip.setPixelColor(i, color)strip.show()time.sleep(wait_ms / 1000.0)def theaterChase(strip, color, wait_ms=50, iterations=10):"""电影影院灯光风格的追逐动画."""for j in range(iterations):for q in range(3):for i in range(0, strip.numPixels(), 3):strip.setPixelColor(i + q, color)strip.show()time.sleep(wait_ms / 1000.0)for i in range(0, strip.numPixels(), 3):strip.setPixelColor(i + q, 0)def wheel(pos):"""生成横跨0-255个位置的彩虹颜色."""if pos < 85:return Color(pos * 3, 255 - pos * 3, 0)elif pos < 170:pos -= 85return Color(255 - pos * 3, 0, pos * 3)else:pos -= 170return Color(0, pos * 3, 255 - pos * 3)def rainbow(strip, wait_ms=20, iterations=1):"""绘制彩虹,褪色的所有像素一次."""for j in range(256 * iterations):for i in range(strip.numPixels()):strip.setPixelColor(i, wheel((i + j) & 255))strip.show()time.sleep(wait_ms / 1000.0)def rainbowCycle(strip, wait_ms=10, iterations=5):"""画出均匀分布在所有像素上的彩虹."""for j in range(256 * iterations):for i in range(strip.numPixels()):strip.setPixelColor(i, wheel((int(i * 256 / strip.numPixels()) + j) & 255))strip.show()time.sleep(wait_ms / 1000.0)def theaterChaseRainbow(strip, wait_ms=50):"""旋转的彩色灯光."""for j in range(256):for q in range(3):for i in range(0, strip.numPixels(), 3):strip.setPixelColor(i + q, wheel((i + j) % 255))strip.show()time.sleep(wait_ms / 1000.0)for i in range(0, strip.numPixels(), 3):strip.setPixelColor(i + q, 0)# Main program logic follows:
if __name__ == '__main__':# Process argumentsparser = argparse.ArgumentParser()parser.add_argument('-c', '--clear', action='store_true', help='clear the display on exit')args = parser.parse_args()# Create NeoPixel object with appropriate configuration.strip = PixelStrip(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)# Intialize the library (must be called once before other functions).strip.begin()print('Press Ctrl-C to quit.')if not args.clear:print('Use "-c" argument to clear LEDs on exit')try:while True:print('Color wipe animations.')colorWipe(strip, Color(255, 255, 0))  # Red wipecolorWipe(strip, Color(0, 0, 0), 30)colorWipe(strip, Color(0, 255, 255))  # Blue wipecolorWipe(strip, Color(0, 0, 0), 30)colorWipe(strip, Color(255, 0, 255))  # Green wipecolorWipe(strip, Color(0, 0, 0), 30)print('Theater chase animations.')print('Rainbow animations.')rainbow(strip)colorWipe(strip, Color(0, 0, 0), 50)rainbowCycle(strip)colorWipe(strip, Color(0, 0, 0), 40)breakwhile True:rainbowCycle(strip)#print('***********************')colorWipe(strip, Color(0, 0, 0), 100)except:colorWipe(strip, Color(0, 0, 0), 100)

之后要注意

这个库非常奇怪,直接在ide中运行会报错,需要在终端中运行python文件

直接ide中运行报错结果:(可能不完全相同)

RuntimeError: ws2811_init failed with code -5 (mmap() failed)

先用cd 路径找到所在文件位置

然后用sudo python 文件名  运行

如果出现

ImportError: No module named _rpi_ws281x

说明安装rpi_ws281x库可能有问题

先用pip uninstall rpi_ws281x库 将其删掉

然后再用sudo pip3 install rpi_ws281x 下载

如果运行成功,应该就能点亮这个花里胡哨的灯了

并且在终端中会有 Color wipe animations等等提示

tips: 接线是否正确是不影响程序运行的   如果确实出现了提示但是灯没有亮,有可能是线没有接正确   要注意 灯带上红 绿 白 经过杜邦线连接后对应接树莓派上针脚显示为 5V #18  GND

亲测 无论哪个5V、哪个GND都可以正确点亮

想关闭灯光就在终端中按两次ctrl+c   想彻底关闭直接拔掉接线即可

这里灯光效果是由代码实现的,故你也可以通过自己的代码实现自己想要的效果

欣赏一下光污染~

【全网最详细】 树莓派控制ws2812b灯带 点亮教程相关推荐

  1. STM32F427库函数PWM+DMA控制ws2812b灯带

    STM32F427IIHx库函数PWM+DMA控制ws2812b灯带 一.参考资料 查看ws2812b用户手册可知: 二.代码部分 添加文件ws2812b.c,ws2812b.h 配置的F427IIH ...

  2. Arduino控制WS2812灯带(灯环)

    设计者:STCode(公众号同名) Arduino控制WS2812灯带(灯环) 1) WS2812灯 WS2812灯带 WS2812灯环 WS2812是一个集控制电路与发光电路于一体的智能外空LED光 ...

  3. 三极管实现单片机PWM控制12VRGB灯带

    通过电路分析我们发现荣事达的这款暖风机是通过PWM控制三极管快速通断实现的,相比于用驱动芯片用三极管驱动功率比较大的12V RGB灯带成本会低很多,电路设计也比较简单.   这是我们拆机的电路图: 这 ...

  4. 使用树莓派控制led灯板 ws2812

    使用树莓派控制led灯板ws2812 推荐一个库 Adafruit_NeoPixel 这里是地址:https://github.com/adafruit/Adafruit_NeoPixel 这个原本是 ...

  5. WS2812B灯带驱动实验

    实验环境: KEIL5.正点原子阿波罗STM32F767开发板 一.灯带介绍 过多介绍我这里不赘述了,想了解详情的可以看看手册,直接开干. 1.1.灯带连接方式 我们只要控制DIN端就好了. 1.2. ...

  6. 三、使用Arduino控制WS2812B灯

    1.硬件 该硬件是基于ESP32设计的板子.如下图所示. 2.原理图 2.1.WS2812B原理图 2.2.ESP32部分原理图 综上:只需要控制IO17便可控制RGB灯. 3.软件编程 3.1.添加 ...

  7. esp32 控制ws2812灯带

    采用的arduino控制,利用别人写好的模块进行控制 vs code搜索Adafruit_NeoPixel导入项目中 代码实现 #include <Adafruit_NeoPixel.h> ...

  8. ws2812b灯带容易坏_吊灯吸顶灯筒灯壁灯射灯灯带LED线条灯……都是个啥?

    装修时,灯具作为照明工具,自然是必不可少的装修建材.然而灯具的种类非常多,吊灯.吸顶灯.筒灯.射灯.壁灯.线灯等等,各种灯具琳琅满目,作用也各有不同.不过提醒业主们在选购时,一定要关注灯具的质量.外观 ...

  9. ws2812b灯带容易坏_WS2812灯带问题

    大神,能帮忙看一下吗?非常感谢! [mw_shl_code=arduino,true]#include #include //strip #define PIN   2 #define MAX_LED ...

  10. 在ESP8266上控制WS2812灯带及热释电传感器原码

    请在ARDUINO IDE中自行添加Adafruit_NeoPixel库即可.测试正常. #include <Adafruit_NeoPixel.h> #ifdef __AVR__  #i ...

最新文章

  1. bit,Byte、KB、MB、GB、TB、PB、EB之间的关系
  2. mysql如何插入新的字段_Mysql 如何 得到新插入的字段ID
  3. 关于业务架构的一些思考与实践
  4. ubuntu 命令卡住_如何在Ubuntu系统中重置root密码
  5. IA-32 Intel手册学习笔记(一)系统架构概述
  6. 使用SAP WebIDE创建开发Java应用,并且在浏览器里调试
  7. 墨客原型系统——随笔分享APP
  8. OpenCR arduino problem list
  9. 35岁前成功黄金法则
  10. 转载一篇阅读文章(还算不错吧)
  11. MYSQL 编码设置
  12. SAP CRM Transaction处理中的权限控制
  13. axios post,get,put
  14. excel辅助列巧妙运用完成工资条的制作
  15. vue 组件 not defined_Vue、Spring Boot开发小而完整的Web前后端分离项目实战10
  16. 清华大学android源码下载网站地址
  17. 国培计算机培训奥鹏,3515011349奥鹏国培培训网络研修总结
  18. ssim算法计算图片_OpenCV 实现图像结构相似度算法 (SSIM 算法)
  19. 传智播客黑马程序员Java学习笔记(一)
  20. 音视频技术开发周刊 | 177

热门文章

  1. SQL常见的一些面试题
  2. linux安装字体库(simSun为例)
  3. 【情商 为什么情商比智商更重要】阅读笔记
  4. office2013 安装易用宝不成功
  5. 从“外行”到“里手”,长沙企业“力量矩阵”开始觉醒
  6. easydarwin 安装_win10安装EasyDarwin
  7. 机器学习中的数学——激活函数(一):Sigmoid函数
  8. 出现Please make sure you have the correct access rights and the repository exists.问题解决
  9. USB协议架构及驱动架构
  10. lzg_ad: WES7 技术概览