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