Étape 3: Code
Copiez et collez. Si les valeurs de cathode commune RGB à 0 au lieu de soustraire.
rPin int = 11 ;
int gPin = 10 ; int bPin = 9 ; float rPinBrightness ; float gPinBrightness ; float bPinBrightness ; nombre en virgule flottante ; mval flotteur ; flotteur rouge ; flotteur vert ; flotteur bleu ; facteur de flotteur ; void setup() {/ / Mettez votre code de configuration ici, pour exécuter une fois :
}
void color() {mval = analogRead(A1) ; valeur = carte (mval, 0, 1023, 380, 650) ;
Si ((valeur > = 380) & & (valeur < 440)) {rouge =-(valeur - 440) / (440-380) ; Vert = 0.0 ; Bleu = 1.0 ; } else if ((valeur > = 440) & & (valeur < 490)) {rouge = 0.0 ; Vert = (valeur - 440) / (490-440) ; Bleu = 1.0 ; } else if ((valeur > = 490) & & (valeur < 510)) {rouge = 0.0 ; Vert = 1.0 ; Bleu =-(valeur - 510) / (510-490) ; } else if ((valeur > = 510) & & (valeur < 580)) {rouge = (valeur - 510) / (580-510) ; Vert = 1.0 ; Bleu = 0.0 ; } else if ((valeur > = 580) & & (valeur < 645)) {rouge = 1.0 ; Vert =-(valeur - 645) / (645-580) ; Bleu = 0.0 ; } else if ((valeur > = 645) & & (valeur < 781)) {rouge = 1.0 ; Vert = 0.0 ; Bleu = 0.0 ; } else {rouge = 0.0 ; Vert = 0.0 ; Bleu = 0.0 ; }; Si ((valeur > = 380) & & (valeur < 420)) {facteur = 0,3 + 0.7*(value-380) / (380-420);} ElseIf ((valeur > = 420) & & (valeur < 701)) {facteur = 1.0;} ElseIf ((valeur > = 701) & & (valeur < 781)) {facteur = 0,3 + 0.7*(780-value) / (780-700);} else {facteur = 0,0;} ;
}
void loop() {/ / Mettez votre code principal ici, pour exécuter à plusieurs reprises : color() ; analogWrite (rPin, 255 - rouge * 100 * facteur); analogWrite (gPin, 255 - vert * 100 * facteur); analogWrite (bPin, 255 - bleu * 100 * facteur); delay(10);}