Stap 3: Code
Kopieer en plak. Als de gemeenschappelijke kathode als RGB-waarden op 0 in plaats van af te trekken.
int rPin = 11;
int gPin = 10; int bPin = 9; float rPinBrightness; float gPinBrightness; float bPinBrightness; drijvende-kommawaarde; float mval; float rood; float groen; float blauw; float factor; void setup {/ / zetten uw setup-code hier, om het eenmalig uit te voeren:
}
VOID color() {mval = analogRead(A1); waarde = kaart (mval, 0, 1023, 380, 650);
Als ((waarde > = 380) & & (waarde < 440)) {rood =-(waarde - 440) / (440-380); Groen = 0,0; Blauw = 1,0; } else if ((waarde > = 440) & & (waarde < 490)) {rood = 0,0; Groen = (waarde - 440) / (490-440); Blauw = 1,0; } else if ((waarde > = 490) & & (waarde < 510)) {rood = 0,0; Groen = 1,0; Blauw =-(waarde - 510) / (510-490); } else if ((waarde > = 510) & & (waarde < 580)) {rood = (waarde - 510) / (580-510); Groen = 1,0; Blauw = 0,0; } else if ((waarde > = 580) & & (waarde < 645)) {rood = 1,0; Groen =-(waarde - 645) / (645-580); Blauw = 0,0; } else if ((waarde > = 645) & & (waarde < 781)) {rood = 1,0; Groen = 0,0; Blauw = 0,0; } else {rood = 0,0; Groen = 0,0; Blauw = 0,0; }; Als ((waarde > = 380) & & (waarde < 420)) {factor = 0.3 + 0.7*(value-380) / (420-380);} anders als ((waarde > = 420) & & (waarde < 701)) {factor = 1,0;} anders als ((waarde > = 701) & & (waarde < 781)) {factor = 0.3 + 0.7*(780-value) / (780-700);} else {factor = 0,0;};
}
void loop {/ / zet uw belangrijkste code hier, om uit te voeren herhaaldelijk: color(); analogWrite (rPin, 255 - rood * 100 * factor); analogWrite (gPin, 255 - groen * 100 * factor); analogWrite (bPin, 255 - Blue * 100 * factor); delay(10);}