Arduino Pro Mini current sinking question

How much current can the GND pins on the Arduino Pro Mini sink? I thought I read somewhere they could sink 150ma, but is that per pin (there are 2 GND pins), or is that total? Thanks

Please forgive my ignorance in most things hardware, I'm still taking university classes and specialize mostly in software. Anywho, I am direct driving 6 RGB Leds so I need to sink a maximum of 20mA*3 (common cathode RGB LEDs and 20mA per anode)*6 LEDs for a total maximum of 360mA of current. Keep in mind that is assuming I run them at their peak of 20mA per annode.

I plan to connect all the common cathodes to the grounds on the board so I don't have to use precious IO pins. If I ran each anode at around 16mA (and assuming the board can sink 150mA/per GND), I could run 3 LEDs per GND pin. If its 150mA total, I'm kinda screwed.

So yeah, not sure if its 150mA total or per GND pin. Anyway I hope that makes my question more clear :-/

I'm not sure what you think the problem is. Why do you think it wont work?

It's not a matter of how much current per GND pin, it's a matter of how much current per IO pin. The multiple GND connections on an Arduino are actually the same thing internally, it's just brought out to several header locations for convenience. But that's not the real issue.

The ATmega MCU has an IO power rating of 40mA per pin (sink or source) and a total overall power rating of 200mA for all IO pins combined. That's the limit you need to stay within.

That means you can supply, say, 40mA out of 5 pins but then can't supply anything out of any other pins. Or 20mA out of 10 pins and nothing out of the remaining. Or 40mA out of 3 pins and have 80mA left to share across the remaining pins.

Once you get to the point of driving multiple LEDs fairly hard you're probably getting into territory where you'd be better off just putting in some switching transistors or an LED driver chip.

It's not a matter of how much current per GND pin, it's a matter of how much current per IO pin.

Sorry that is not true. It is true about the individual pins but it is also true that there is a current limit on the total current sink on both the power and ground. This is in the data sheet for the processor. It states absolute maximum for Vcc and GND pins is 200mA. So if you allow about 50mA for normal operation of the chip that leaves 150mA for a load.

I'm not sure what you think the problem is. Why do you think it wont work

While it would work it might not work for long. You would be operating the processor outside it's design range and so reliability would be compromised. This also applies to total current sourced by the chip. However note you could have 150mA source current and 150mA sink current for driving LEDs.

Please forgive my ignorance in most things hardware, I'm still taking university classes and specialize mostly in software. Anywho, I am direct driving 6 RGB Leds so I need to sink a maximum of 20mA*3 (common cathode RGB LEDs and 20mA per anode)*6 LEDs for a total maximum of 360mA of current. Keep in mind that is assuming I run them at their peak of 20mA per annode.

You won't be able to drive your 6 leds with 360mA of current. The Arduino can't put out that much.

See this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1277961099/10

About halfway down the page:

You can source or sink a maximum of 40mA from each pin.

You can source a maximum of: 150mA total from D0-D4 & A0-A5 150mA total from D5-D13

You can sink a maximum of: 100mA total in D0-D4 100mA total in D5-D13 100mA total in A0-A5

And: Vcc can source a max of 200mA Gnd can sink a max of 200mA.

So, 40mA from a pin is the best case scenario, but if you're sourcing current from all the analog pins, then you'd better not be sourcing more than 25mA from each pin, and even less than that if you're also sourcing current from digital pins 0..4 at the same time.

And overall for the whole board, you can't source more than 200mA.

Note, those are absolute maximums. And as Grumpymike said, you have to subtract the mA needed by the processor from the max. So the absolute maximum for the whole board to source to any external components is 150mA.

But that doesn't take into account what the onboard voltage regbulator can handle: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1277880350 http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1276895551

This will vary according to how much voltage you feed it. In this case, I'm feeding it 9v, which left me with around 60-100mA to play with rather than the 150mA which the AtMega could potentially supply with a better voltage regulator. Feed it with exactly 5v and you can get that 150mA. But no more.

So to feed your leds with 360mA, you're gonna have to power them directly rather than through the Arduino's pins. You'll need transistors, or a darlington array. (Which you could pair with a high power shift register if you wanted to drive an array of leds.)