绚丽的色彩从何而来_LOTO示波器实测WS2812B系LED光源
绚丽的色彩从何而来_LOTO示波器实测WS2812B系LED光源

不管你对 “RGB性能狂升300%” 的梗认同不认同,不可否认,绚丽的彩色很是酷炫,在现在市面上带“灯”的肯定比不带“灯”的贵也成了商家的一致行为。
在市面上呢,其中有一种RGB LED灯珠,因为价格便宜一个只要几毛钱买的多了都可能到1毛钱一个,无需额外的“庞大”控制电路来驱动,用各廉价的单片机和简单的元件,就可以单IO接口串联让成百上千个灯珠各自独立的发出颜色,低功耗,而且还有不错的刷新率,让DIY玩家在很是推崇。

这就是WS2812系类,它是一种“集控制电路与发光电路于一体的智能外控LED光源”。
那么它是怎么实现的?相关的文档、源码很多,但具体到实际控制方式还是不明不白。本文以WS2812B-4为例,它是WS2812的mini版本,性能上没有标准6脚的快,但是体积小,性能也用,可以让点距更小些。
让我们了解下它,然后为我们就会知道为什么要用LOTO示波器明明白折的分析下它是怎么被单片机控制并发出绚丽颜色的吧。
先来看看官方文档的说明~





科普下时间单位,方便后边说明。
ms是毫秒=0.001秒 us是微秒=0.000,001秒 ns是纳秒=0.000,000,001秒
现在开始正文,简单总结下来就是想最快的让一个WS2812B-4 LED亮出颜色就需要1960ns(1bit) * 24(红绿蓝3种颜色各8bit) + 280us = 47040ns(47.04us) + 280us = 327.04us。
也就是可以让单个WS2812B-4 LED 在不考虑余辉的情况下1毫秒3次,1秒钟约3000次的变换不同颜色。
再之后呢,每扩展1个WS2812B-4 LED,就要多一个47.04us的颜色数据,那么要1秒60次刷新需要16.66ms = 16,666us – 280us = 16,386us /47.04us = 348个LED。
这个串联数量,让我们设计小的DIY RGB光源的时候可以游刃有余的完成所要的设计。这也就是WS2812受到推崇的原因了。
但是这么快的速度让我们很难看到它是怎么工作了,用万用表什么的是绝对没可能看到实际情况,因为太快,电压看来都是0。那么怎么才能看到LED怎么被电路驱动的呢,只能用示波器了。
专业人士的示波器都是很贵的,几万几十万上百万的不在少数,而这价格让我们DIY玩家很难承受,毕竟银子难赚嘛,二三四手的也不省钱还有可能翻车。
这里就要让本文的主角LOTO示波器出场了。有了它可以让我们只要花几百块就可以在电脑上了解到专业示波器的分析结果,当然了一分钱一分货,带宽和采样和价格是同比的,不过一般的DIY也用不到那么专业的嘛,所以,LOTO让你可以不用花很多钱就可以在日常场景中方便的了解学习电路原理,真的是物超所值的哦。
如图~,这个洞洞板用一下1块的STC8G单片机,用一个IO端口驱动了2个WS2812B-4,让第一个发出了绿色,第二个发出了红色,并且是呼吸闪烁的效果,不过图片嘛,就看不出来了。

因为是5V的高电平电路,需要用10X挡的探头,先来用1ms时域看,只有小小的一个尖刺,1ms里看9600bps的通讯那叫清楚,现在看us级的只能看成这样的尖刺,只能说,真快啊。

再来换成0.1ms挡位,已经能看到连续的波纹了,不过还是太密集了,可以见到蓝色的A通道是黄色B通道长一倍,这就是LED1收到2组24bit后转发给LED2的1组24bit的波纹啦。

0.1ms还太“慢”了,让我们来到10us,也就是0.000,010秒。也因为太快了,这里用了触发,可以拦截到有高电平,要不闪动太快想找到波形可不容易。可以看到明显的波形情况了,但是还是不清楚,那我们继续。

1us档,现在就可以清楚的看到波形了。怎么样,0.000,001秒的电压变化清楚的展现给你的感觉?

也许你会奇怪为什么不是平的波形的呢?是不是示波器有问题?我们先来试试示波器,看看是不是示波器的问题,示波器多都有一个标准方波生成功能,来方便我们调校示波器。
看下图,这是个1000hz的标准方波,嗯~很平,证明示波器没问题。那就是STC8G的输出就是上图中所显示的波形了~

我们继续,加上标签,可以看到第一个高电平是0.323us,这就是我们单片机里发的高电平的8位二进制颜色的第一位颜色的波形表现,00011101就是我们第一个灯的绿色数值。

我们把波形缩小一点看下全部的波形。前8个第一组波形就是绿色G,第二组就是红色R,第三组就是蓝色B。

然后我们来看看第一个WS2812转发给第2个的波形,可以看到只过了150ns,第二个WS2812就收到了转发的波形信号了!真的很快了。

以上就是我们使用LOTO虚拟示波器对WS2812B-4的波形分析啦。如果没有示波器,只能在单片机里盲目的调节频率来适配WS2812的数据。而有了LOTO示波器就方便多了,不知道你有没有感觉到示波器的方便呢。
绚丽的色彩从何而来_LOTO示波器实测WS2812B系LED光源的更多相关文章
- Android图片色彩变幻
最近在做图片相关的应用,所以就各方积累到一些常用的操作,一般来说会有多种方式来实现这一功能,比如 采用色度变换 采用ColorMatrix颜色矩阵 采用对像素点的直接操作 等等,今天就复习一下第一种方 ...
- 2000条你应知的WPF小姿势 基础篇<1-7>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...
- [转]显卡帝揭秘3D游戏画质特效
显卡帝揭秘3D游戏画质特效 近几年来,大量采用最新技术制作的大型3D游戏让大部分玩家都享受到了前所未有的游戏画质体验,同时在显卡硬件方面的技术革新也日新月异.对于经常玩游戏的玩家来说,可能对游戏画质提 ...
- #知识#室内设计原理ing
室内设计原理 第一章 室内设计的含义和基本观点 人的一生,绝大部分时间是在室内度过的,因此,人们设计创造的室内环境,必然会直接关系到室内生活.生产活动的质量,关系到人们的安全.健康.效率.舒适等等.室 ...
- Chinese culture
文房四宝 笔墨纸砚是中国古代文人书房中必备的宝贝,被称为“文房四宝”.用笔墨书写绘画在 中国可追溯到五千年前.秦(前221---前206)时已用不同硬度的毛和竹管制笔:汉代(前206—公元220) ...
- Penetration Testing、Security Testing、Automation Testing
相关学习资料 http://www.cnblogs.com/LittleHann/p/3823513.html http://www.cnblogs.com/LittleHann/p/3828927. ...
- CG基础教程-陈惟老师十二讲笔记
转自 麽洋TinyOcean:http://www.douban.com/people/Tinyocean/notes?start=50&type=note 因为看了陈惟十二讲视频没有课件,边 ...
- OpenGL基础图形编程
一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...
- TesCase-GUI(图形用户界面)测试
GUI测试是功能测试的一种表现形式.不仅要考虑GUI本身的测试,也要考虑GUI所表现的系统功能的测试. GUI应具有的要素 1.符合标准和规范 2.直观性 (1)用户界面是否洁净.不唐突.不拥挤? ...
随机推荐
- PHP的命令行扩展Readline相关函数学习
PHP 作为一个 Web 开发语言,相对来说,命令行程序并不是它的主战场.所以很多年轻的 PHP 开发者可能连命令行脚本都没有写过,更别提交互式的命令操作了.而今天,我们带来的这个扩展就是针对 PHP ...
- 关于我刚开始学习c语言的这档事
关于我刚开始学习C语言的这档事 就在9月20日下午,记得王老师曾提及三类人,一类专注于自己内心的感受:一类人专注于探索与创造:还有一类专注于效率的最大化.思绪不禁回想到11号至今的学习过程-- 我的学 ...
- DeDeCMS v5.7 漏洞复现
DedeCMS V5.7 漏洞复现 XSS漏洞 首先我们在首页要进行用户的注册以及登录 这里我们已经提前注册过了,登录即可 普通用户账号密码:root/passwd 管理员账号密码:admin/pik ...
- unittest基本原理及介绍
unittest基本原理: unittest是python自带的测试框架,还有一个框架是:pytest,这里简单介绍下unittest模块的简单应用 unittest是python的标准测试库,相比于 ...
- Docker-Compose的一些常用命令
一.Docker-Compose简介 1.Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排. Docker-Co ...
- c# 类型安全语言
所谓的安全性语言其本质是有关类型操作的一种规范,即不能将一种类型转换为另一种类型. c#作为一种安全性语言,允许合理的类型转换,但是不能将两个完全不同的类型相互转换. c#允许开发者将对象转换为它的实 ...
- 终端进程启动失败: shell 可执行文件“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”的路径不存在。
因为某些原因重新安装1了vscode 和node 遇到了两个棘手的问题 ctrl + ~ 打开终端提示 " 终端进程启动失败: shell 可执行文件"C:\Windows\S ...
- 安装Transformers与ValueError: Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' 'truncation=True' to have batched tensors with the same length.报错
此篇博客内容为短暂存留记录(项目使用过程还未记录),后续将会更新完整学习流程.. 1.根据官网上的链接安装有两种方式: (1)pip直接安装 pip install transformers # 安装 ...
- 痞子衡嵌入式:我的三个小项目陆续上线恩智浦官方Github
恍如眨眼间,痞子衡在飞思卡尔/恩智浦已经工作 8 年多了,前 5 年主要是在软件团队,最近 3 年在系统团队.所处团队不同,工作思维也不同,自从转到系统团队,开始跟客户打起交道,对待问题和解决问题的立 ...
- 1.JDBC编程六步走以及实现案例
1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库 2.获取数据库连接:Java进程和Mysql进程之间的通道开启了 3.获取数据库操作对象:这个对象是用来执行sql语句的 4.执行SQL语 ...