Red overpowers other colors in full-color LED

I bought a full-color LED from Radio Shack. It has 3 cathode and one anode pin.

The back of the bag it came in says this:

*Emits red, green and blue *Intensity:(typical):565mcd (red), 650mcd (green), 120mcd (blue) *Wavelength: (typical): 624nm (red), 525nm (green), 470nm (blue) *Viewing Angle: 60 degrees *FW current: 30MA (green/blue), 50mA (red) *FW supply: 3.5V (typical), 4.0V max.(green/blue) 2.0V (typical), 2.6V max.(red)

I can connect it and get all colors out of it, but when I try to emit red + some other color, the red overpowers the other color (or in other words, I only see the red). I think this has something to do with the red's higher FW current, but I'm not sure.

I have the LED's anode connected to the Arduino's 5VDC, with 2 150ohm series resistors. Each cathode on the LED is connected to the collector of a NPN transistor, and each emitter on the transistors are connected to GND. The base of each transistor is connected to the PWM pins 11, 10, and 9. Said pins are analogWrite()'ed to control the color of the LED.

So how can I make the red not overpower the others? I tried putting a series resistor (150 ohms) after the emitter of the transistor that controls the red cathode of the LED, but then I had a very weak red, and I'm not sure of the math to use to figure out what the correct number of ohms should be.

Any help would be appreciated. :)

Either dim it with software (PWM) or use a potentiometer to figure out the proper resistor value.

Udo

Ohm's Law http://www.the12volt.com/ohm/page2.asp

LED Calculator http://led.linear1.org/1led.wiz

It's very expected (and not unusual) that you would need to use different value resistors with RGB LEDs.

You need a separate resistor for each of the three LEDs in the package. Insert it between the LED cathode and the PWM pin.

150 Ohms is a good starting point for the red: it will drop 3V at 20mA (which is the "normal" current for those LEDs: the figures you quoted are the "Absolute Maximum" ratings. You don't want to be operating anywhere near those). For the green and blue, you want about half that, because you're looking to drop about 1.5V. 82 Ohms would be a good standard value, or you could parallel 2 of the 150s if your stock of resistors is limited.

Once you've got those in place, you can start adjusting values up to reduce the current in one or more LEDs to get the right color balance. That's where Udo's suggestion of using pots can come in handy: put a small pot (say, 500 Ohm or 1K) in series with the resistor. That way, you know you'll always have at least the minimum needed resistance to keep from blowing up the LED, and have a wide adjustment range so you can fine-tune the final value.

I tried putting a series resistor (150 ohms) after the emitter of the transistor that controls the red cathode of the LED, but then I had a very weak red,

It needs to go in the collector in line with the LED not the emitter.

Thanks everyone. I ended up using http://www.kpsec.freeuk.com/components/led.htm to calculate the resistance values. I halved the amps on the package to avoid going to high on the amperage, and now the red LED has a 150ohm resistor, with the blue and green each having a 300ohm resistor.