Skip to content

Conversation

@vdrad
Copy link

@vdrad vdrad commented Feb 13, 2025

Conforme levantado nas discussões no Discord, o LED RGB WS2818 recebe os bytes RGB do MSB -> LSB.
Do jeito que a biblioteca está escrita, o envio é feito do LSB -> MSB. Por consequência, os comandos para mudança de cor e/ou diminuição de brilho ficam não intuitivos (O brilho aumenta conforme o número diminui, as cores ficam esmaecidas, etc.).

É possível solucionar o problema aplicando uma lógica de reversão de byte antes de enviá-lo para o WS2818. Assim, o usuário envia os valores RGB de forma intuitiva e, internamente, a biblioteca aplica a reversão e envia o valor tratado à matriz de LEDs.

Esse PR implementa uma função para a reversão de bytes uint8_t reverse_byte(uint8_t b) bem como integra-o no código já existente, na função void npSetLED(const uint index, const uint8_t r, const uint8_t g, const uint8_t b).

Essas modificações tornam o controle de brilho mais intuitivo, onde 0 e 255 significam mínimo e máximo brilho, respectivamente.

@vdrad vdrad changed the title Corrige erro de cor e brilho dos LEDs da matriz aplicando a reversão de byte Corrige erro de cor e brilho da matriz de LEDs RGB aplicando a reversão de byte Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant