Bonjour,
Envoyé par
zesinger
... J'ai essayé de simplement de multiplier:
R2=R*i
G2=G*i
B2=B*i
mais ça semble modifier la couleur plutôt que de faire une nuance de la couleur originale.
Y a-t-il une formule qui donne vraiment un fondu naturel au noir d'une couleur RGB? ...
Si le fonctionnement du système ne dépend que d'un seul paramètre (tension d'alimentation ou intensité) tu ne disposes probablement d'aucune possibilité d'agir sur les tentes intermédiaires, à moins de bricoler le circuit.
Les intensités des couleurs seront données par 3 fonctions caractéristiques du montage:
r = Fr(u) ; v = Fv(u) ; b = Fb(u) .
D'autre part, tu ne définis pas ce qu'est un "fondu naturel" allant du noir à une couleur quelconque (r°, v°, b°): dans le domaine [0 ; 255]3 , il y a une infinité de chemins reliant l'origine (0, 0, 0) au point (M°) représentant la couleur considérée.
Si tu es en mesure de programmer les intensités relatives des 3 couleurs en fonction d'un paramètre (t) variant de zéro (pour le noir) à l'unité (lumière maximale), tu peux envisager plusieurs fonctions monotones croissantes:
a) une relation de proportionnalité:
r = Round(r°.t) ; v = Round(v°.t) ; b = Round(b°.t) ,
qui conduit apparemment à un résultat décevant;
b) une relation restreignant le domaine des couleurs sombres, peu attrayantes:
r = Round(r°.Sqrt(t)) ; v = Round(v°.Sqrt(t)) ; b = Round(b°.Sqrt(t)) ;
c) des fonctions linéaires par morceaux, permettant d'introduire une couleur intermédiaire (r1, v1, b1):
r = Round(r1*t/t1) si (t < t1) sinon r = Round(r1 + (r° - r1)*(t - t1)/(1 - t1)) ;
v = Round(v1*t/t1) si (t < t1) sinon v = Round(v1 + (v° - v1)*(t - t1)/(1 - t1)) ;
b = Round(b1*t/t1) si (t < t1) sinon b = Round(b1 + (b° - b1)*(t - t1)/(1 - t1)) ,
avec (t1 << 1), par exemple t1 = 0.1 ou 0.2; c'est à ce stade un choix personnel.
PS1: Il y a aussi une variante (d) favorisant les couleurs les plus lumineuses:
r = Round(r1*Sqrt(t/t1)) si (t < t1) sinon r = Round(r1 + (r° - r1)*(t - t1)/(1 - t1)) , etc
PS2: Désolé de laisser transparaître une ignorance scandaleuse ...
Je voudrais commander des LED strips RGB avec un arduino.
qu'est-ce que c'est qu'un arduino ?
Partager