物联网控制的智能LED灯带(1):WS2812灯带控制(WS2812/2811,ESP32,NODE

您所在的位置:网站首页 灯带有双色的吗 物联网控制的智能LED灯带(1):WS2812灯带控制(WS2812/2811,ESP32,NODE

物联网控制的智能LED灯带(1):WS2812灯带控制(WS2812/2811,ESP32,NODE

2024-07-02 05:46| 来源: 网络整理| 查看: 265

ESP32控制WS2812/11灯带

这个部分中笔者将使用ESP32的RMT功能控制WS2812/11灯带。

什么是WS2812/2811灯带?与5050rgb灯带有何区别

在这里插入图片描述

不象5050rgb灯带只能同时显示一种颜色,ws2812/2811灯带上的每一个led都能被单独精确控制,显示(8位*3)种颜色。 WS2812/2811只需一根信号线就能控制灯带上所有led。多个灯带间可以通过串联轻松延长。 在30hz的刷新频率下一个信号线能够控制至多500个led。 WS2811芯片 与WS2812led.

WS2811芯片实现了上述功能。WS2812led灯珠为内置了2811芯片的RGB灯珠。 一些灯带用一个WS2811芯片驱动3个普通5050RGB灯珠,而另一些全部使用了集成了芯片的WS2812灯珠。WS2812灯条都为5v供电,芯片驱动版本的灯带有12v供电版本。

WS2812/2811的控制信号

如上所说,WS2812芯片依靠一个信号线控制上百个LED的颜色,这是如何实现的呢? 每个LED的信号有24位,由R,G,B各八位组成。每个数据位的高低由信号引脚的波形决定: WS2812波形 T0H,T0L,T1H,T1L的时间值由具体的芯片决定,具体请参考worldsemi网站的技术手册。 当发送多个led的数据时,每个芯片都会吞掉最前面的24位数据。两个数据帧之间需要间隔280微秒以上。ws2812数据

ESP32输出WS2812控制信号

为了接入wifi,这个项目使用ESP32作为灯带控制器和MQTT网关。笔者使用的是arduino-ide的开发环境(关于如何在arduino-ide或类似环境中开发esp32)。 控制WS2812/11的arduino库有WS2812FX和NeoPixelBus,但是它们都不支持ESP32硬件。好在esp32有内置的RMT库专门用来输出数字波形,并且提供了控制ws2812的范例程序(arduinoIDE-文件-示例-esp32-RMT-RMTWriteNeoPixel)。

//设置led数量,声明rmt对象。 #define NR_OF_LEDS 50 #define NR_OF_ALL_BITS (24*NR_OF_LEDS) //rmt数据 rmt_data_t led_data[NR_OF_ALL_BITS]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3