——来自迪文开发者论坛
本期为大家推送迪文开发者论坛获奖开源案例——迪文屏控制WS2812氛围灯,工程师通过COF的OS核精准控制WS2812幻彩灯带每一颗灯珠颜色,实现炫酷的灯带颜色切换的动态效果。
【演示视频】
完整开发资料含迪文屏DGUS工程资料与C51代码,获取方式:
1. 前往迪文开发者论坛获取:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=9445&extra=page%3D1
2. 微信公众号中回复“氛围灯”获取。
【UI素材展示】
【UI开发示例】
【C51工程设计】
通过IO口控制灯的颜色驱动代码如下:
void WS2812_Write_RGB()
{
u8 i,j,a;
EA=0;
for(j=0;j<3;j++)//每个灯需要传输次数
{
a=RGB_One[j];
for(i=0;i<8;i++)
{
WS2812_DI=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
WS2812_DI=(a&0x80);
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
a<<=1;
WS2812_DI=0;
}
WS2812_DI=0;
}
EA=1;
}
void WS2812_RST()
{
WS2812_DI=0;
sys_delay_ms(1);
}
void WS2812_DIS_1()//效果1,颜色切换,所有LED颜色一样,共7种基本色
{
static u8 j=1;
u16 i=0;
if(j&0X01) RGB_One[1]=10;else RGB_One[1]=0;
if(j&0X02) RGB_One[0]=10;else RGB_One[0]=0;
if(j&0X04) RGB_One[2]=10;else RGB_One[2]=0;
j%=7;
j++;
for(i=0;i<num_val;i++)
WS2812_Write_RGB();
WS2812_RST();
sys_delay_ms(1000);
}
下一篇:【开源获奖案例】智能培养室