Paso 3: código
Copiar y pegar. Si cátodo común como RGB los valores 0 en lugar de restar.
rPin int = 11;
gPin int = 10; bPin int = 9; Float rPinBrightness; Float gPinBrightness; Float bPinBrightness; Float valor; mval de flotador; flotador rojo; flotador verde; flotador azul; factor de flotación; void setup() {/ / Pon tu código de instalación, para ejecutar una vez:
}
void color() {mval = analogRead(A1); valor = mapa (mval, 0, 1023, 380, 650);
Si ((valor > = 380) & & (valor < 440)) {rojo =-(valor - 440) / (440-380); Verde = 0.0; Azul = 1.0; } else if ((valor > = 440) & & (valor < 490)) {rojo = 0.0; Verde = (valor - 440) / (490-440); Azul = 1.0; } else if ((valor > = 490) & & (valor < 510)) {rojo = 0.0; Verde = 1.0; Azul =-(valor - 510) / (510-490); } else if ((valor > = 510) & & (valor < 580)) {rojo = (valor - 510) / (580-510); Verde = 1.0; Azul = 0.0; } else if ((valor > = 580) & & (valor < 645)) {rojo = 1.0; Verde =-(valor - 645) / (645-580); Azul = 0.0; } else if ((valor > = 645) & & (valor < 781)) {rojo = 1.0; Verde = 0.0; Azul = 0.0; } else {rojo = 0.0; Verde = 0.0; Azul = 0.0; }; Si ((valor > = 380) & & (valor < 420)) {factor = 0.3 + 0.7*(value-380) / (420-380);} else if ((valor > = 420) & & (valor < 701)) {factor = 1.0;} else if ((valor > = 701) & & (valor < 781)) {factor = 0.3 + 0.7*(780-value) / (780-700);} Else {factor = 0.0;};
}
void loop() {/ / Pon tu código principal, para ejecutar varias veces: color(); analogWrite (rPin, 255 - rojo * 100 * factor); analogWrite (gPin, 255 - verde * 100 * factor); analogWrite (bPin, 255 - azul * 100 * factor); delay(10);}