Confusión de conexión de ánodo RGB LED Arduino

Me está costando mucho hacer que este LED RGB funcione con mi arduino. Primero describiré mi configuración (esquema) y luego te mostraré el código que tengo.

Tengo 5 voltios en el segundo pin del LED RGB, luego tengo 3 resistencias de 200 ohmios en cada uno de los pines que salen del LED que conducen respectivamente a PMW 9,10,11 de mi arduino.

(La configuración del led) pin 1 Rojo (-) pin 2 Voltaje positivo pin 3 Azul (-) pin 4 Verde (-)

el codigo que tengo es

byte Red = 9; 
byte Blu = 10;
byte Grn = 11;  

void setup () 
{  
 pinMode (Red, OUTPUT);
 pinMode (Blu, OUTPUT);
 pinMode (Grn, OUTPUT);
}

 int x=255;
 int y=0;
 int z=0;
 void loop () 
{
 analogWrite(Red,x);
 analogWrite(Blu,y);
 analogWrite(Grn,z);
}

Se supone que el código anterior produce una luz roja, pero produce una púrpura. Siento que es algo realmente simple.... Gracias

Respuestas (2)

Tuve el mismo problema al intentar usar el LED RGB que venía con mi kit.

De hecho, todos los ejemplos de mi kit se escribieron para LED RGB de cátodo común. Los valores de salida de PWM en el código asumen un cátodo común y los diagramas de cableado tienen el cable que no es RGB conectado a GND. Me tomó un tiempo darme cuenta de que los LED que obtuve eran de ánodo común y que el cable que no es RGB debería conectarse a VCC en lugar de a GND.

Al adaptar sus ejemplos, intente este truco de invertir la escala justo cuando escribe el valor en los pines PWM.

 analogWrite(Red,255-x);
 analogWrite(Blu,255-y);
 analogWrite(Grn,255-z);

Lo bueno de hacerlo de esa manera es que todos los demás ejemplos de código Arduino escritos para el cátodo común se pueden usar básicamente tal cual con solo este ajuste final de los valores escritos.

Dado que está tirando del LED a tierra para encenderlo, los pines que establece en cero son los que están encendidos, lo que le da dos pines encendidos.

Recomiendo comenzar con un solo pin; conéctelo y vea si puede hacer que ese color se encienda. Agregue colores y vaya desde allí.

Correcto. El OP está cambiando el extremo de tierra, no el extremo positivo, por lo que se invierte la lógica del código. Una lógica baja enciende el color del Led correspondiente, una lógica alta lo deshabilita.