Problema de espectro Arduino RGB

En los últimos días he estado trabajando en un LED RGB de ánodo en Arduino, he intentado que haga un espectro RGB, pero todo lo que obtengo son solo los colores de rojo a verde, luego se atasca en blanco. y cyan, creo que el led rojo del Ánodo RGB se enciende y se apaga, ya que la combinación de verde y azul es cyan y los tres resultan blancos si son iguales que en este caso supongo que lo son (no del todo seguro).

La cuestión es que el ánodo RGB no muestra todos los colores, lo hice para que el nivel de voltaje dado al ánodo RGB aumente con una función de bucle y disminuya una vez que llegue a 255 con una función decreciente, aquí está el código:

    int redPin = 11;
int greenPin = 10;
int bluePin = 9;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}
void loop() {

redFuncInc(1);
delay(100);
greenFuncInc(1);
delay(150);
blueFuncInc(1);
delay(200);

// calling decreasing methods

redFuncDec(255);
delay(10);
greenFuncDec(255);
delay(15);
blueFuncDec(255);
delay(20);

}


// Increasing from rainbow spectrum

void redFuncInc(int red){
  for (int i = 1; i<=255; i +=1){

  analogWrite(redPin, i);
  delay(10);
}
}
void greenFuncInc(int green){
  for (int z = 1; z<=255; z +=1){

  analogWrite(greenPin, z);
  delay(20);
}
}
void blueFuncInc(int blue){
  for (int u = 1; u<=255; u +=1){

  analogWrite(bluePin, u);
  delay(30);
}
}
// Decreasing from rainbow spectrum

void redFuncDec(int red){
  for (int y = 255;  y <=255;  y -=1){

    analogWrite(redPin, y);
    delay(10);
  }
}
void greenFuncDec(int green){
  for (int x = 255;  x <=255;  x -=1){

    analogWrite(greenPin, x);
    delay(10);
  }
}
void blueFuncDec(int blue){
  for (int g = 255;  g <=255;  g -=1){

    analogWrite(bluePin, g);
    delay(10);
  }
}

Gracias por su ayuda, no se preocupen por mi inglés...

¿Qué es un "ánodo RGB"?
Considero que eso significa un LED "Common Anode RGB"

Respuestas (1)

(1) Ninguna de sus funciones Inc / Dec usa el argumento que se les pasa. No estoy seguro si eso fue intencional, pero es digno de mención.

(2) Sus funciones Dec tienen una condición de terminación sin sentido en sus bucles. En lugar de <=255seguramente estos deberían tener >=0?

(3) La forma en que escribió su bucle básicamente va a hacer la siguiente secuencia (después de arreglar (2) es decir):

#000000 // BLACK
#010000
...
#FF0000 // RED
#FF0100
...
#FFFF00 // YELLOW
#FFFF01
...
#FFFFFF // WHITE
#FEFFFF
...
#00FFFF // CYAN
#00FEFF
...
#0000FF // BLUE
#0000FE
...
#000000 // BLACK

No estoy seguro de que eso sea lo que pretendías, pero ahí lo tienes.

(4) No diga z += 1y z -= 1en sus bucles for, diga z++y z--. Las personas que leen código levantarán las cejas ante lo anterior.

Sin embargo, gracias por la respuesta rápida, ¿cómo puedo hacer que muestre colores como el púrpura y el rosa y dejar que complete el espectro y se mantenga al tanto? (Soy bastante nuevo en Arduino)
No hay una forma canónica de atravesar el espectro RGB. El espacio de color es algo complicado, pero podría beneficiarse al leer sobre el espacio de color Hue Saturation Luminance y buscar un código en línea que convierta entre HSL y RGB.