WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。
其引脚功能及典型应用如下图所示,说明其比较适合作为灯带使用。
WS2812B的通讯方式比较有趣,每个灯珠需要接收24Bit的数据,R,G,B各8位:
数据协议采用单线归零码的通讯方式,如有多个灯珠级联,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。
其数据传输时间有其特定要求,如下所示:
由于需要用到us级别的延时,而HAL库中只有ms级别的延时函数Delay_ms();本来想直接在滴答函数处修改时基,即可将Delay_ms()直接转化为us级别的延时,但怕系统中其他部分有用到Delay_ms()的地方,发生不可预知的错误,故采用定时器方式实现了us级别的延时。