WS2812B彩灯

目录

1、介绍

2、参数

 3、引脚功能

4、应用电路

5、Code


1、介绍

        WS2812是一种智能控制LED灯源,集成了控制电路和RGB芯片在一个5050封装组件中。它的主要特点和技术规格如下:

  • 集成设计:WS2812将控制电路和RGB芯片集成在同一个封装中,大大简化了电路设计和安装过程
  • 信号重塑电路:内置信号重塑电路,可以保证波形在每次传递到下一个驱动器时不会发生失真累积
  • 电源丢失重置电路:内置的电源丢失重置电路确保了在电源失效的情况下灯具能够正确重置
  • 颜色和亮度:每个像素可以在三原色中实现256级亮度控制,总共可以显示16777216种颜色。扫描频率不低于400Hz/s
  • 串联传输信号:通过单线串联端口传输信号,任意两点之间的距离超过5米时,信号传输不需要增加电路
  • 刷新率:在30fps的刷新率下,低速模式下的串联数量不少于512点,高速模式不少于1024点
  • 数据传输速率:以800Kbps的速率发送数据
  • 一致性和性价比:灯光的颜色具有很高的一致性,并且成本效益高
  • 应用范围:广泛应用于全彩模块、柔性灯条、室内/室外LED不规则屏幕等LED装饰照明
  • 电气特性:功率供应电压为6.0~7.0V。LED的红、绿、蓝三色分别在1.8-2.2V、3.0-3.2V、3.2-3.4V的电压下工作
  • 数据传输方式:采用单NZR通信模式。在上电复位后,第一个像素接收来自控制器的24位数据,然后传递到下一个像素

2、参数

 

 3、引脚功能

序号符号功能
1GND电源地
2DO数据输出端
3VDD电源:5V
4DI数据输入端

4、应用电路

        设计建议: 

        在实际应用电路中,为防止产品在测试时带电插拔产生的瞬间高压损伤 IC 内部电源及信号输入输出脚,应在信号输入及输出端串接保护电阻。

        1.为了使各 IC 芯片间更稳定工作,产品两端所并的退偶电容一般不建议省略;

        2.产品的信号输入及输出端必需串接保护电阻 R1/R2,因线材及传输距离不同,在信号线两端串接的保护电阻会略有不同;R1/R2 的大小取决于级联灯珠的数量,级联数量越多,则 R1/R2 越小,灯珠间传输距离长,一般建议在20-2KΩ之间取值,建议通常建议取值在 500 欧左右;以实际使用情况定,R2可接地。

5、Code

注:在 platformio.ini 文件中加入库:

lib_deps = fastled/FastLED @ ^3.6.0
#include <Arduino.h>
#include <FastLED.h>#define NUM_LEDS 15   // 串联灯珠数量
#define DATA_PIN 13   // 信号引脚CRGB leds[NUM_LEDS];void setup()
{ // Uncomment/edit one of the following lines for your leds arrangement.// ## Clockless types ##FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed// FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<TM1829, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<TM1812, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<UCS1904, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<UCS2903, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<WS2852, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<GS1903, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<SK6812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<APA106, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<PL9823, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<WS2813, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<WS2811_400, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<GE8822, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<LPD1886, DATA_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<LPD1886_8BIT, DATA_PIN, RGB>(leds, NUM_LEDS);// ## Clocked (SPI) types ##// FastLED.addLeds<LPD6803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<WS2803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);// FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical// FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical// FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical// FastLED.addLeds<SK9822, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
}void loop()
{// 显示红色for(int i=0; i<NUM_LEDS; i++){leds[i] = CRGB::Red;}FastLED.show();delay(500);// 显示绿色for(int i=0; i<NUM_LEDS; i++){leds[i] = CRGB::Green;}FastLED.show();delay(500);// 显示蓝色for(int i=0; i<NUM_LEDS; i++){leds[i] = CRGB::Blue;}FastLED.show();delay(500);// 不显示for(int i=0; i<NUM_LEDS; i++){leds[i] = CRGB::Black;}FastLED.show();delay(500);
}

烧录:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考高级架构师:数据库模式概念和例题

一、AI 讲解 数据库模式分为三个层次&#xff1a;外模式、概念模式和内模式。这三个层次分别对应不同的抽象级别&#xff0c;帮助数据库管理员和用户以不同的视角理解数据库结构。 外模式&#xff08;用户级&#xff09;&#xff1a;是数据库用户的视图。每个用户可以通过外模…

HarmonyOS NEXT应用开发—在Native侧实现进度通知功能

介绍 本示例通过模拟下载场景介绍如何将Native的进度信息实时同步到ArkTS侧。 效果图预览 使用说明 点击“Start Download“按钮后&#xff0c;Native侧启动子线程模拟下载任务Native侧启动子线程模拟下载&#xff0c;并通过Arkts的回调函数将进度信息实时传递到Arkts侧 实…

神经网络背后的数学原理

原文地址&#xff1a;The Math Behind Neural Networks 2024 年 3 月 29 日 深入研究现代人工智能的支柱——神经网络&#xff0c;了解其数学原理&#xff0c;从头开始实现它&#xff0c;并探索其应用。 神经网络是人工智能 &#xff08;AI&#xff09; 的核心&#xff0c;为…

智能网络新纪元:机器学习赋能未来计算机网络高速发展

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

软件无线电系列——多率信号处理之抽取

本节目录 一、等效基带谱 二、抽取概念 三、低通信号的整数倍抽取 四、数字带通信号的抽取 1、整带抽取 2、带通信号的正交复抽取 3、带通信号的正交实抽取本节内容 一、等效基带谱 对于任何采样频率为fs的实采样信号&#xff0c;无论是Nyquist采样还是带通采样&#xff0c;采…

企业培训系统私有化解决方案:PlayEdu

PlayEdu&#xff1a;打造私有化的企业智慧教育平台&#xff0c;赋能全员高效成长&#xff01;- 精选真开源&#xff0c;释放新价值。 概览 随着企业不断发展及市场竞争加剧&#xff0c;内部培训的重要性日益凸显。然而&#xff0c;在实施过程中&#xff0c;如何确保培训内容与…

Android Studio开发学习(六)———TableLayout(表格布局)、FrameLayout(帧布局)

目录 前言 一、Tablelayout &#xff08;一&#xff09;Tablelayout的相关简介 &#xff08;二&#xff09;TableLayout使用方法 1. 当TableLayout下面写控件、则控件占据一行的大小。(自适应一行&#xff0c;不留空白) 2.多个组件占据一行&#xff0c;则配合TableRow实现…

【论文阅读笔记】Head-Free Lightweight Semantic Segmentation with Linear Transformer

莫名地这篇论文我特别难理解&#xff0c;配合代码也食用不了 1.论文介绍 Head-Free Lightweight Semantic Segmentation with Linear Transformer 基于线性Transformer的无头轻量级语义分割 2023年 AAAI Paper Code 2.摘要 现有的语义分割工作主要集中在设计有效的解码器&am…

java数据结构与算法刷题-----LeetCode461. 汉明距离

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或统计1的个数2. 位移操作处理3. Brian Kernighan算法 位运…

机器学习和深度学习--李宏毅(笔记与个人理解)Day11-12

Day11 when gradient is small…… 怎么知道是局部小 还是鞍点&#xff1f; using Math 这里巧妙的说明了hessan矩阵可以决定一个二次函数的凹凸性 也就是 θ \theta θ 是min 还是max&#xff0c;最后那个有些有些 哈 是一个saddle&#xff1b; 然后这里只要看hessan矩阵是不…

图形学基础:二维三维刚体的移动、缩放和旋转矩阵

一、二维 1.1 缩放矩阵 x&#xff0c;y分别表示在x轴&#xff0c;y轴缩放的倍数 示例&#xff1a; 1.2 平移矩阵 x&#xff0c;y分表表示在x轴&#xff0c;y轴上移动的距离 示例&#xff1a; 1.3 旋转矩阵 θ 表示点绕原点逆时针旋转θ 示例&#xff1a; 点 (2,1) 绕原点旋转…

MapReduce过程解析

一、Map过程解析 Read阶段&#xff1a;MapTask通过用户编写的RecordReader&#xff0c;从输入的InputSplit中解析出一个个key/value。Map阶段&#xff1a;将解析出的key/value交给用户编写的Map()函数处理&#xff0c;并产生一系列的key/value。Collect阶段&#xff1a;在用户编…

从 SQLite 3.5.9 迁移到 3.6.0(二十一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;从 SQLite 3.4.2 迁移到 3.5.0&#xff08;二十&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​SQLite 版本 3.6.0 &#xff08;2008-07-16&#xff09; 包含许多更改。按照惯例 SQLite项目&#xff…

怎么在外地控制自家的电视

怎么在外地控制自家的电视 随着科技的进步和智能家居的普及&#xff0c;远程控制家中的电器设备已经成为现实。电视作为家庭娱乐的中心&#xff0c;远程控制功能更是备受关注。那么&#xff0c;如何在外地控制自家的电视呢&#xff1f;本文将为你提供详细的步骤和有价值的信息…

为什么要“挺”鸿蒙?

鸿蒙到底是什么&#xff1f; 随着5G、物联网等技术的快速发展&#xff0c;智能终端设备的应用场景也越来越广泛。为了满足不同设备间的互联互通需求&#xff0c;华为在2019年推出了自主研发的操作系统——鸿蒙OS。值得关注的是&#xff0c;这也是首款国产操作系统。 要了解鸿…

UE5学习日记——制作多语言版本游戏,同时初步学习UI制作、多语言化、控制器配置、独立进程测试、打包配置和快速批量翻译等

所有的文本类&#xff0c;无论变量还是控件等都能实现本地化&#xff0c;以此实现不同语言版本。 在这里先将重点注意标注一下&#xff1a; 所有文本类的变量、控件等都可以多语言&#xff1b;本地化控制板中收集、编译时&#xff0c;别忘了编译这一步&#xff1b;支持批量复制…

ClickHouse--16--普通函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、日期函数1、时间或日期截取函数&#xff08;返回非日期&#xff09;2、时间或日期截取函数&#xff08;返回日期&#xff09;3、日期或时间日期生成函数 二、类…

PTA 应急救援站选址(floyd+打印路径)

大学城虎溪社区有很多居民小区&#xff0c;居民小区道路图是连通的。现要在该社区新建一个应急救援站&#xff0c;且该应急救援站要和某个小区建在一起。为了使应急救援最快速&#xff0c;经各部门商量决定&#xff1a;应急救援站建好后&#xff0c;离应急救援站最远的小区到应…

使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…

单例模式以及常见的两种实现模式

单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”&#xff0c;按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例&#xff0c;如果创建出了多个实例&#xff0c;就会编译报错。而不会创建出多个实…