Electronic – arduino – Have I reached maximum current on the Arduino

arduinocurrent

I'm wrapping my head around my electronics theory (it's been a long while).

I've read that the max current from the 5v VCC pin on the Arduino Uno is 200ma before any damage is done.

I'm using an Adafruit NeoPixel 24 LED ring. Based on this page, each LED draws up to 60mA at full brightness. If I max each LED out that's 1440ma of current required.

I (foolishly as I now know) have been running all pixels at white on full brightness directly from the Arduino. Measuring the current (serially) on the ground line, there was roughly 315mA flowing in the circuit.

My question is, is the Arduino managing to get the circuit up to 315mA but from that point cannot provide anymore current? Is this is then the absolute non documented maximum that my Arduino can provide?

Further to that, does that mean I've been damaging the Arduino?

Best Answer

Yes, you are slowly damaging it. Each output is guaranteed to supply up to 20 mA and you're exceeding that. You noticed that it does work. It will not work for the 10 years lifetime the manufacturer guarantees if you observe the max ratings. So it might fail sooner or later.

The Arduino can probably provide even more current but it's lifetime will decrease dramatically. For example you might get 5 years at 300 mA but only 1 month at 500 mA. This is just my guess !

What the max current will be in your implementation depends on the supply voltage and the LEDs. The switches in the Arduino have some resistance and these now limit the current somewhat. But this is no good as that also means extra heat dissipation ! And heat decreases lifetime.

If you want your contraption to last a long time: do not exceed the max ratings ! So use some MOSFETs to do the heavy work. The SI2301 and AO3400 are MOSFETs that can easily handle the current and can be easily controlled from the Arduino. Oh, and they're also cheap on ebay.