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?

  • \$\begingroup\$ You should probably clarify how you've wired things up exactly. Neopixels should have their own 5V supply, with the Arduino just driving the data signal. \$\endgroup\$ – Roger Rowland Nov 24 '15 at 12:22

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.

  • \$\begingroup\$ Or 1 minute at 500mA... \$\endgroup\$ – Brian Drummond Nov 24 '15 at 11:32
  • 1
    \$\begingroup\$ 1ms at 10 Amps LOL :-) \$\endgroup\$ – Bimpelrekkie Nov 24 '15 at 12:52
  • \$\begingroup\$ Uhm.. This is true generally speaking, but in the end your answer does not apply to this case, since the device he is using is NOT powered by the arduino digital pins but from the 5V rail. So the MOSFETs are useless. Of course your advices are good at designing \$\endgroup\$ – frarugi87 Nov 24 '15 at 14:30
  • \$\begingroup\$ I was making some assumptions how the LEDs were controlled as no schematic was provided. \$\endgroup\$ – Bimpelrekkie Nov 24 '15 at 14:53

What @FakeMoustache wrote is usually right, but does not apply to your case.

AFAIK, the NeoPixels are serially-controlled leds. They have a 5V pin for the power and a serial pin for the data. I think you connected the data pin to an arduino pin (and so the current flowing in it is really low) and the 5V connection to the 5V of the arduino. If that is the case, then

  1. if you are powering the arduino through the USB cable: usually USB ports are limited to 500mA. Moreover there is a 500mA polyfuse on the USB power pin. So if you try to get more than 500mA the arduino should limit this current and eventually shut down
  2. if you are powering through the Vin pin or the barrel connector then the limiting factor is the 5V regulator. It can deliver up to 1A in ideal conditions (but much lower if the voltage is greater than 7V).

So you will not fry the atmega. Probably you will "blow" the fuse (which resets after a while) or you can experience losses of power.

But, in the end, try to make power calculations in advance, so you won't risk to fry anything


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.