xuhaifeng1 发表于 2023-12-15 16:36:05

扩展库使用说明——WS2812(STC系列)

1-模块概述
https://www.haohaodada.com/new/bbs/data/attachment/forum/202207/13/161934t9zvie9c9j9ui9vj.png
WS2812 是一个集控制电路与发光电路于一体的智能外控 LED 光源。其外型与一个5050LED 灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部 振荡器和可编程定电流控制部分,有效保证了像素点光的颜色高度一致。 数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN 端接受从控制器传输过来的数据,首先送过来的 24bit 数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整 形放大后通过 DO 端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少 24bit。像素点 采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅受限信号传输速度要求。https://www.haohaodada.com/new/bbs/data/attachment/forum/202207/13/162059y81mza28t828fwza.png

https://www.haohaodada.com/new/bbs/data/attachment/forum/202207/13/162059r7qldls77zqbd4qk.png

2-图形块模块
1.让RGB在某个引脚初始化,可以修改引脚与灯珠个数



2.控制特定某个灯珠写入固定的几种颜色,同时可以调节亮度



3.控制特定某个灯珠显示(R,G,B)



4.控制特定几个灯珠写入固定的几种颜色,同时可以调节亮度



5.控制特定几个灯珠写(R,G,B)




3-连接说明





4-示例代码

#define IRC_24M
#define PLL_NO
#define HC595_DS   P4_3
#define HC595_DS_MODE {P4M1&=~0x08;P4M0|=0x08;}//P4_3推挽输出
#define HC595_STCP P4_6
#define HC595_STCP_MODE {P4M1&=~0x40;P4M0|=0x40;}//P4_6推挽输出
#define HC595_SHCP P2_7
#define HC595_SHCP_MODE {P2M1&=~0x80;P2M0|=0x80;}//P2_7推挽输出
#define RGB_NUMLEDS 4
#define RGB_PIN P0_0
#define RGB_PIN_MODE {P0M1&=~0x01;P0M0|=0x01;}//P0_0推挽输出

#include <STC32G.h>
uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
#include "lib/rcclock.h"
#include "lib/hc595.h"
#include "myLib/ws2812.h"
#include "lib/delay.h"

uint8 i;

void setup()
{
rcclock_set_irc(1);
hc595_init();//HC595初始化
hc595_disable();//HC595禁止点阵和数码管输出
rgb_init();
}

void loop()
{
for (i = 0; i < 4; i = i + 1) {
    rgb_show(i,50,0,0);
}
delay(1000);
for (i = 0; i < 4; i = i + 1) {
    rgb_show(i,0,50,0);
}
delay(1000);
for (i = 0; i < 4; i = i + 1) {
    rgb_show(i,0,0,50);
}
delay(1000);
}

void main(void)
{
setup();
while(1){
    loop();
}
}

常见问题及主要事项1、注意连接线路是否正确,杜邦线等确定能正常使用。


页: [1]
查看完整版本: 扩展库使用说明——WS2812(STC系列)