Tons of breathing LEDs on single PWM pin

Hello,

I'm doing a project which is essentially a lighted cube, that communicates status through different colors. So when the light goes below a certain level it turns a certain color, when temp goes above a certain level it turns another color, etc. I'm figuring I'll probably need anywhere from 2 to 4 LEDs per color to get a nice intensity, and the colors would breathe, which is pretty easy with PWM on the arduino.

What I'm thinking is that I'm going to leave all the colors in phase. So that the intensity ramp on red is the same as yellow, is the same as green, etc. That would require only a single PWM output and most importantly, a single section in the code, which would make writing easier.

The solution I've come up with is to have the PWM pin drive a MOSFET, and give it the modulation, and the MOSFET would repeat the "breathing" pulse to all the LEDs. Then each color gets switched on or off through a transistor by other pins on the arduino that simply go high or low. Something like this:

http://img594.imageshack.us/img594/5388/ledctrl.jpg

Sorry about the symbols, I think I put a P gate instead of an N gate on the diagram. It's an N gate. And the LEDs, of course, would be multiple per color if necessary, with the resistor value altered to give them the adequate current.

I figure an IRF630, which has an insanely high drain current for this purpose should be more than enough for whatever I might plug into it. And for the switching of each color, maybe an N2222, 4 LEDs will go at about 80 mA max anyway.

So, why not just drive each color from a PWM output? Coding. Handling and monitoring one PWM output in code is a little easier than handling 4 or 5. And since I have the MOSFET laying around, might as well.

Any thoughts on the circuit? Sound like it could work?

I am sure there is something I dont see, but the fundamental idea sounds fine

If that is an N channel FET then it will not work. Ths is because to turn it on you have to have a 5V difference between source and gate. As the source is connected to the LEDs then it is not stating at zero volts but the forward voltage drop of the LED plus what is dropped across the resistor.
You will not get more than 4.3V on the transistor's emitter as well.
Yo need a P type FET and base resistors and to put the LED and resistor in the collector of the transistor and not the emitter.

However when you have done all that you will still have trouble because the PWM signals will beat with each other, some work at diffrent frequencies so they will not add up like you hope they will.

Did mike just say this.. You need resistors on the base of the transistors

me and fets dont agree, silly voltage devices

EVP:
Did mike just say this.. You need resistors on the base of the transistors

Yes because I said that the LED and resistor had to be in the collector not the emitter, so when you make this change you need a resistor in the base.

Oh, so if you don't change it and leave the led and resistor on the emitter it doesn't need a resistor on the base?
For some reason i thought they always needed a resistor on the base.

The configuration with the load in the emitter is called an emitter follower. The voltage on the emitter is 0.7V lower than on the base. You don't need a resistor to limit the current in this case because the emitter voltages rises as the transistor turns on and acts as negitave feedback preventing more current from being drawn.

What is a "breathing" led?

If you want to use one pwm bus to drive multiple fading, check into the driver design for Aura (?) led. The smartest I have seen.

Grumpy_Mike:
If that is an N channel FET then it will not work.
Yo need a P type FET and base resistors and to put the LED and resistor in the collector of the transistor and not the emitter.

However when you have done all that you will still have trouble because the PWM signals will beat with each other, some work at diffrent frequencies so they will not add up like you hope they will.

Hmm. So, what would be a better solution? Hook each color up to a PWM output and tackle the software code?

Hook each color up to a PWM output and tackle the software code?

Yes that is one way where you don't have two PWM signals fighting each other.