0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

西安乐拓精益 2022-06-05 00:00 次阅读

不管你对“RGB性能狂升300%”的梗认同不认同,不可否认,绚丽的彩色很是酷炫,在现在市面上带“灯”的肯定比不带“灯”的贵也成了商家的一致行为。

在市面上呢,其中有一种RGB LED灯珠,因为价格便宜一个只要几毛钱买的多了都可能到1毛钱一个,无需额外的“庞大”控制电路来驱动,用各廉价的单片机和简单的元件,就可以单IO接口串联让成百上千个灯珠各自独立的发出颜色,低功耗,而且还有不错的刷新率,让DIY玩家在很是推崇。

这就是WS2812系类,它是一种“集控制电路与发光电路于一体的智能外控LED光源”。

那么它是怎么实现的?相关的文档、源码很多,但具体到实际控制方式还是不明不白。本文以WS2812B-4为例,它是WS2812的mini版本,性能上没有标准6脚的快,但是体积小,性能也用,可以让点距更小些。

让我们了解下它,然后为我们就会知道为什么要用LOTO示波器明明白折的分析下它是怎么被单片机控制并发出绚丽颜色的吧。

先来看看官方文档的说明~

poYBAGD9FzSALRMXAAOl_k-BptI091.pngpoYBAGD9F0CALBqvAAIZrUkqq4c942.png

pYYBAGD9F0uAXhCiAAAbjszFe3w951.pngpoYBAGKQQKOAIKJGAACi3KpvNbQ464.pngpoYBAGKQQKSAFVlGAAJ4hROdAkM560.png

科普下时间单位,方便后边说明。

ms是毫秒=0.001秒us是微秒=0.000,001秒 ns是纳秒=0.000,000,001秒

现在开始正文,简单总结下来就是想最快的让一个WS2812B-4LED亮出颜色就需要1960ns(1bit) * 24(红绿蓝3种颜色各8bit) + 280us = 47040ns(47.04us) + 280us = 327.04us。

也就是可以让单个WS2812B-4 LED在不考虑余辉的情况下1毫秒3次,1秒钟约3000次的变换不同颜色。

再之后呢,每扩展1个WS2812B-4LED,就要多一个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,让第一个发出了绿色,第二个发出了红色,并且是呼吸闪烁的效果,不过图片嘛,就看不出来了。

pYYBAGKQQKSAEUXDAAZxKS-z_Ts006.png

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

poYBAGD9F3uAJoiHAAPivZTOKqk147.png

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

pYYBAGD9F4mAXgubAAP1hMzOceM814.png

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

pYYBAGD9F5aAK2vpAAQajd3o9CQ033.png

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

poYBAGD9F6OAAkOiAAOMU5cti7E325.png

也许你会奇怪为什么不是平的波形的呢?是不是示波器有问题?我们先来试试示波器,看看是不是示波器的问题,示波器多都有一个标准方波生成功能,来方便我们调校示波器。

看下图,这是个1000hz的标准方波,嗯~很平,证明示波器没问题。那就是STC8G的输出就是上图中所显示的波形了~

poYBAGD9F6-AKTFeAAQEtEbXdYI490.png

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

poYBAGD9F7uATbV2AAITAKikVa0760.png

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

poYBAGD9F8iAEOFfAAPol6W2r3g963.png

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

poYBAGD9F9SAYXDdAAR-tNzTTnE401.png

以上就是我们使用LOTO虚拟示波器对WS2812B-4的波形分析啦。如果没有示波器,只能在单片机里盲目的调节频率来适配WS2812的数据。而有了LOTO示波器就方便多了,不知道你有没有感觉到示波器的方便呢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6204

    浏览量

    184552
  • LED光源
    +关注

    关注

    3

    文章

    258

    浏览量

    32570
收藏 人收藏

    评论

    相关推荐

    基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED

    /*ws2812b灯珠数量*/ #defineWS2812B_AMOUNT16 typedefstruct { uint8_tR; uint8_tG; uint8_tB
    发表于 11-22 21:34

    论如何使用WS2812以及类似灯珠

    ​  WS2812 LED灯珠,这是一种非常流行的可寻址RGB LED。每个WS2812 LED内部集成了控制电路,因此可以通过一个数据输入
    的头像 发表于 09-30 15:11 331次阅读
    论如何使用<b class='flag-5'>WS2812</b>以及类似灯珠

    人工智能从何而来

    当大家都在讨论人工智能的时候,有一个问题似乎很少有人关注,即:人工智能从何而来
    的头像 发表于 09-06 09:27 570次阅读

    WS2812是否可以反转UART的输出?

    是否可以反转 UART 的输出。输出 1 而不是 0,输出 0 而不是 1。 问题背景:按照以下方案使用 UART 控制 WS2812: (1)XX XXX XX(0). 具有 7 个数据位的 UART。 WS2812 的 3 位。
    发表于 07-15 07:37

    LOTO示波器软件新增导览功能

    新版本的大部分型号LOTO示波器的上位机软件我们改成了导航工具条方式。原来的方式是把所有功能都显示在不同的标签页中,这样的优点是非常快捷方便,基本上用鼠标一两次点击就能直达想要的功能设置。但是缺点
    发表于 05-28 10:32

    LOTO示波器动作编程功能(命令批处理)

    动作编程功能是为了方便客户根据自己的应用场景,做到一个按键就连续做多个示波器操作,从而降低了对操作人员的技术要求,做到傻瓜式操作。之前LOTO有个类似的功能,是把示波器的基础设置根据不同的测试
    发表于 05-11 16:41

    STM32F030 MDA+PWM驱动ws2812b,起始的50US的低电平是怎么产生?

    STM32F030 MDA+PWM 驱动 ws2812b,起始的50US的低电平怎么产生? 现在dma+pwm,倒是可以产生一个800K hz的驱动数据,但是WS2812要求有50US的低电平作为复位信号,这个复位信号怎么产生?
    发表于 04-12 07:23

    STM32F051C8 PA0不能以DMA的方式输出PWM,没有正确波形输出是哪里出了问题?

    启动timer2 PWM,用示波器检测不到输出的波形; 使用STM32F030C8 ,同样的配置和WS2812B的应用代码,更换为PA6(对应的timer3,channel1)能够正常输出波形,并且能够点亮彩色LED灯条。
    发表于 03-13 06:20

    迪文屏控制WS2812氛围灯

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——迪文屏控制WS2812氛围灯。工程师通过COF智能屏的OS核精准控制WS2812幻彩灯带每一颗灯珠颜色,实现炫酷的灯带颜色切换的动态效果。演示视频完整开发资料
    的头像 发表于 01-26 08:12 959次阅读
    迪文屏控制<b class='flag-5'>WS2812</b>氛围灯

    PSoC4设备运行WS2812 RGB+IC LED,发出的数据并不对称是为什么?

    我一直在尝试使用没有 UDB 的小型 PSoC 4 设备运行 WS2812 RGB+IC LED。 我的时机似乎还不够快。 看来有了 24MHz 的部件我应该没问题,只要敲一下 IO 引脚就能运行
    发表于 01-23 08:34

    智能外控集成LED光源WS2812B-V5/W产品手册

      WS2812B-V5/W是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整
    发表于 01-12 15:36 1次下载

    WS2812B-Mini-V3/W智能外控集成LED光源资料规格书

    电子发烧友网站提供《WS2812B-Mini-V3/W智能外控集成LED光源资料规格书.pdf》资料免费下载
    发表于 01-07 10:32 2次下载

    WS2812E-V3智能外控集成LED光源中文资料

    电子发烧友网站提供《WS2812E-V3智能外控集成LED光源中文资料.pdf》资料免费下载
    发表于 12-29 11:11 3次下载

    瑞萨e2studio(28)----SPI 驱动WS2812灯珠

    本文介绍了如何使用瑞萨RA微控制器,结合E2STUDIO配置工具和SPI通讯接口,来驱动和控制WS2812 LED灯带。这是一个集硬件连接、软件配置和编程开发于一体的综合性项目,目标是实现对LED灯带颜色和亮度的精确控制。
    的头像 发表于 12-01 16:48 1933次阅读
    瑞萨e2studio(28)----SPI 驱动<b class='flag-5'>WS2812</b>灯珠

    STM32C0开发(1)----SPI 驱动WS2812灯珠

    本文介绍了如何使用STM32微控制器,结合STM32CubeMX配置工具和SPI通讯接口,来驱动和控制WS2812 LED灯带。这是一个集硬件连接、软件配置和编程开发于一体的综合性项目,目标是实现对LED灯带颜色和亮度的精确控制
    的头像 发表于 12-01 16:47 2412次阅读
    STM32C0开发(1)----SPI 驱动<b class='flag-5'>WS2812</b>灯珠