• 注册
  • 查看作者
  • 彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点

    彩色LED灯珠,目前有2种主流类型,一种是灯珠内布置了R/G/B3种颜色LED,通过3路PWM分别控制3种LED亮度进行混色,另一种是灯珠内部除了3色LED还直接内置了灯控制器,称为IC灯珠,你只需要输入24bit的RGB控制信号,它内部会自动产生驱动pwm信号,并且自带信号转发,对连续的输入信号,截取前24bit后,后面的数据自动从DOUT口输出转发到下一颗灯珠。

    在封装上两者都是4脚的,如果是不带ic的,则每颗灯珠需要3路控制信号,数目一多,想搞个点阵屏什么的,连驱动ic都要排阵列,简直要打人,所以在彩色LED方面,如果成本没有要压到极限的,还是选择IC灯珠来做阵列会比较省心。

    <a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707222630166-295153757.png?x-oss-process=style/full’></a></figure>



<p>(看看下面的512像素彩色led点阵屏,只需要4根线就可以流畅控制,可达30 fps的刷新率)</p>



<figure class="wp-block-image is-style-default"><a data-fancybox=<a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707213730686-1404123670.png?x-oss-process=style/full’></a></figure>



<p>WS2812的详细参数详见其官网datasheet,网上也大把中文资料,我们着重在其数字信号控制上。</p>



<p>PIN-MAP 见下图所示,非常简单,VDD , VSS 分别为电源和地, DIN为数据输入,DOUT为数据输出 ,每颗灯珠须要24bit的控制数据,超过24bit的数据会通过DOUT流到下一个灯珠</p>



<figure class="wp-block-image is-style-default"><a data-fancybox=<a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707215358187-620042822.png?x-oss-process=style/full’></a></figure>



<p>所以多个WS2812灯珠串接时候,将前一个的DOUT接到下一个的DIN即可,参考下图WS官方推荐的LED灯带原理图和PCB。所以也可以理解为啥上图的512 LED点阵屏只需要4根线就能控制了吧,它只是把灯带折叠起来做成正方形屏幕的样子,本质上是连续的灯带。</p>



<figure class="wp-block-image is-style-default"><a data-fancybox=<a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707221450112-1009894208.png?x-oss-process=style/full’></a></figure>



<p>WS2812B数据输入只需要一个管脚,它使用的是自定义的脉宽控制协议,下表摘自 ws2812 datashee</p>



<figure class="wp-block-image is-style-default"><a data-fancybox=<a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707223115805-2027330020.png?x-oss-process=style/full’></a></figure>



<figure class="wp-block-image is-style-default"><a data-fancybox=<a href="https://www.cnblogs.com/digiArts/p/13262927.html">彻底理解带IC的彩色灯珠控制器WS2812B以及使用ESP8266对其进行控制的要点</a>‘ src=’https://img.haibucuo.com/2023/03/1542400-20200707223131742-1432340004.png?x-oss-process=style/full’></a></figure>



<p>   </p>



<p> 总结一下就是:</p>



<p>        bit 1  : 先输出 0.8us 高电平,然后输出 0.45us 低电平</p>



<p>   bit 0  : 先输出 0.4us 高电平,然后输出 0.85us 低电平 </p>



<p>输出一个bit需时 1.25us ,通过控制2种脉冲宽度来进行1和0位编码,如果持续输出超过50us以上的低电平,就表示reset,也可以理解为帧结束.</p>



<p>如此短的脉宽保证了ws2812的高刷新率,其通讯数据速率可达800kbps,</p>



<p>那很明显,调试这种器件,你起码要有个逻辑分析仪来调整你的输出时序.</p>



<p>那接下来结合ESP8266来对WS2812灯带驱动,通过实例了解驱动一个led灯和驱动一条灯带</p>



<p>转载自:https://www.cnblogs.com/digiArts/p/13262927.html</p>
</div>



<!-- 话题 -->
<div class="jinsom-single-topic-list clear">
<a href="https://www.chuangzaomi.cn/tag/esp8266" title="esp8266" class="opacity"><img loading="lazy" src="" class="avatar opacity" alt="esp8266"><span>esp8266</span></a><a href="https://www.chuangzaomi.cn/tag/ws2812b" title="WS2812b" class="opacity"><img loading="lazy" src="" class="avatar opacity" alt="WS2812b"><span>WS2812b</span></a></div>




<div class="jinsom-post-bar">

<li class="jinsom-no-like" onclick= 0
  • 0
  • 0
  • 160
  • 请登录之后再进行评论

    登录
  • 动态
  • 单栏布局 侧栏位置: