[Código Aberto] DWIN Screen Control WS2812 Iluminação Ambiente

--Do Fórum de Desenvolvedores DWIN

Esta edição tem como objetivo apresentar o premiado projeto de código aberto do Fórum de Desenvolvedores DWIN - DWIN screen control WS2812 ambient lighting. Através do núcleo do sistema operacional inteligente COF, os engenheiros controlam com precisão a cor de cada LED da faixa de iluminação WS2812, permitindo a criação de efeitos dinâmicos de troca de cores na faixa.

1. Material da interface do usuário

vcsd (1)

2. Design de interface do usuário

vcsd (2)

3. Projeto C51

O código do driver para controlar a cor da luz através da porta de E/S é o seguinte:

void WS2812_Write_RGB()

{

u8 i,j,a;

EA=0;

for(j=0;j

{

a=RGB_One[j];

para(i=0;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

WS2812_DI=0;

}

WS2812_DI=0;

}

EA=1;

}

void WS2812_RST()

{

WS2812_DI=0;

sys_delay_ms(1);

}

void WS2812_DIS_1()//Efeito 1, troca de cores, todas as cores do LED, um total de 7 cores básicas

{

estático u8 j=1;

u16 i=0;

se(j&0X01) RGB_One[1]=10;senão RGB_One[1]=0;

se(j&0X02) RGB_One[0]=10;senão RGB_One[0]=0;

se(j&0X04) RGB_One[2]=10;senão RGB_One[2]=0;

j%=7;

j++;

para(i=0;i

WS2812_Write_RGB();

WS2812_RST();

sys_delay_ms(1000);

}


Data da publicação: 31 de janeiro de 2024