Go Down

Topic: Fader RGB Xpl (Read 906 times) previous topic - next topic

Overloaded

Bonsoir à tous!
Voilà, je vous explique.

Etant novice++ en la matière, je me suis attaqué au bandeau RGB via Xpl sur un Arduino Uno (qui fonctionne très bien d'ailleurs).
Maintenant, j'aimerais "fader" le changement de couleur et je ne sais pas comment m'y prendre.
J'ai bien essayé les RGB Crossfader du site Arduino, mais ca m'a conduit a du grand n'importe quoi :(

Avez-vous des idées ou avez-vous déjà réalisé ce type de fonction?

Merciiii

fdufnews

Faire une interpolation linéaire entre les 2 couleurs.
Pour chacune des composantes RVB faire:
calculer un incrément
incrément = (niveau_départ - niveau_arrivée)/nombre_de_pas
on se trouve ainsi avec 3 incréments
Ensuite une boucle
for (i=0; i<nombre_de_pas;i++)
   R+= incrément_rouge;
   V+= incrément_vert;
   B+= incrément_bleu;
   afficherRVB(R,V,B);

Il va sans dire que les incréments sont des flottants. sinon l'interpolation n'a pas de sens.

Overloaded

Oui, le même principe que le crossfader du site Arduino. Mais je ne peux pas utiliser des float pour les incrémente sachant que ce sont des sortie pwm, si?

Christian_R

Les incréments sont des chiffres à virgule, mais le cumul est arrondi dans variables int R, G, B (de 0-255).
Ca va varier progressivement "en escalier" avec des marches parfois inégales mais on ne le verra pas.
Christian

fdufnews

Qu'on soit bien clair la conversion en int se fait dans l'appel de la fonction d'affichage. Les variables R, V, B sont flottantes et le reste sinon cela ne fonctionne pas

Overloaded

D'accord, merci beaucoup pour ces précisions! Cependant en essayant le code, le i par en vrille en donnant des valeurs aléatoires, comme si il n'y avait plus de mémoire. Il faudrait que je mette un memfree quelque part pour voir.

fdufnews

Si tu mettais ton code on gagnerait peut un peu de temps plutôt que de faire des spéculations dans le vide

Go Up