绚丽的色彩从何而来_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光源的更多相关文章

  1. Android图片色彩变幻

    最近在做图片相关的应用,所以就各方积累到一些常用的操作,一般来说会有多种方式来实现这一功能,比如 采用色度变换 采用ColorMatrix颜色矩阵 采用对像素点的直接操作 等等,今天就复习一下第一种方 ...

  2. 2000条你应知的WPF小姿势 基础篇<1-7>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...

  3. [转]显卡帝揭秘3D游戏画质特效

    显卡帝揭秘3D游戏画质特效 近几年来,大量采用最新技术制作的大型3D游戏让大部分玩家都享受到了前所未有的游戏画质体验,同时在显卡硬件方面的技术革新也日新月异.对于经常玩游戏的玩家来说,可能对游戏画质提 ...

  4. #知识#室内设计原理ing

    室内设计原理 第一章 室内设计的含义和基本观点 人的一生,绝大部分时间是在室内度过的,因此,人们设计创造的室内环境,必然会直接关系到室内生活.生产活动的质量,关系到人们的安全.健康.效率.舒适等等.室 ...

  5. Chinese culture

      文房四宝 笔墨纸砚是中国古代文人书房中必备的宝贝,被称为“文房四宝”.用笔墨书写绘画在 中国可追溯到五千年前.秦(前221---前206)时已用不同硬度的毛和竹管制笔:汉代(前206—公元220) ...

  6. Penetration Testing、Security Testing、Automation Testing

    相关学习资料 http://www.cnblogs.com/LittleHann/p/3823513.html http://www.cnblogs.com/LittleHann/p/3828927. ...

  7. CG基础教程-陈惟老师十二讲笔记

    转自 麽洋TinyOcean:http://www.douban.com/people/Tinyocean/notes?start=50&type=note 因为看了陈惟十二讲视频没有课件,边 ...

  8. OpenGL基础图形编程

    一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...

  9. TesCase-GUI(图形用户界面)测试

    GUI测试是功能测试的一种表现形式.不仅要考虑GUI本身的测试,也要考虑GUI所表现的系统功能的测试.   GUI应具有的要素 1.符合标准和规范 2.直观性 (1)用户界面是否洁净.不唐突.不拥挤? ...

随机推荐

  1. Linux系列(20) - shutdown

    作用 用于关机或重启 例子 [shutdown -h 05:30]:设定凌晨05:30关机 [shutdown -h +30]:30分钟后关机 [shutdown -h now] 立即关机 [shut ...

  2. Vue 初学

    Vue 的基本代码:      概念简介:Vue.js 是目前最火的一个前端框架,只关注视图层,主要负责MVC中的V这一层     MVC 是后端的分层开发概念:     MVVM是前端视图层的概念, ...

  3. django class类即视图类添加装饰器的几种方法

    根据别人发布整理,个人爱好收集(原文:https://blog.csdn.net/mydistance/article/details/83958655 ) 第一种:定义函数装饰器,在函数,类中使用函 ...

  4. python处理权限关系一些注意事项

    在模型类中多对多的关系(必须是对象) 如果要获取多对多表中的值,必须使用对象进行搜索,不能直接输入名称 例:这样才能查找到(下面例子是针对,组设置多对多关到用户,现在要根据用户获取相应的组) user ...

  5. 分组密码(四)AES算法① — 密码学复习(七)

    介绍完S-PN型结构之后,下面介绍AES算法.由于内容比较多所以将其分为两篇来介绍,本篇主要讲AES的历史时间节点.产生背景.与DES的对比.算法框图(粗略)以及一些数学基础. 7.1 AES的历史时 ...

  6. Springboot --- Bug集

    一. 启动springboot报错:找不到或无法加载主类 解决:直接选中项目,在ecplise选中"project",点击clean 清理项目再运行 问题解决. 二.报错:Fail ...

  7. Batch Normalization和Layer Normalization

    Batch Normalization:对一个mini batch的样本,经过一个nueron(或filter)后生成的feature map中的所有point进行归一化.(纵向归一化) Layer ...

  8. 支持remote write和exemplar的prometheus服务

    最近项目组在做Prometheus指标采集和告警,其中用到了Prometheus的exemplar特性,由于该特性比较新,当前支持该特性的存储有比较少.因此需要自行实现exemplar功能. 我在gi ...

  9. 从零入门 Serverless | 架构的演进

    作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...

  10. 从零入门 Serverless | 企业级 CI/CD 工具部署 Serverless 应用的落地实践

    背景知识 通过以往几节课程的学习,相信大家对于 SAE 平台已经有了一定的了解.SAE 为客户免除了很多复杂的运维工作,开箱即用.按用量付费:与此同时 SAE 提供了丰富的 Open API,可以很容 ...