I understand that you usually need an H-Bridge or some sort of Motor Driver to connect a Motor to an Arduino, as otherwise it will damage it.

But why is this, I mean I realize each pin can only handle 40amp, but is it dangerous because the Arduino cannot supply this much....or is there some kind of "blowback" voltage this can damage it?

  • 5
    \$\begingroup\$ Each pin can only handle 40 milli amp; it would be totally awesome if an Arduino could handle 40A! (Though I expect the part would be very hefty!) \$\endgroup\$ – JYelton Feb 6 '13 at 4:58
  1. Each pin on an Arduino can handle 40 milli amperes, not 40 Amperes. That too in ideal conditions (temperature, Vcc), actual allowable current can be a fair bit lower.
  2. Besides current limitation of the Arduino pins, a key failure condition is the LDO voltage regulator on the Arduino board, which will overheat and can get destroyed if it is made to source high current.
  3. Motors do have a "blowback" voltage, a back-EMF that is usually addressed by adding a reverse-biased fast diode, sometimes in addition to a capacitor, across the motor's supply wires. Without such protection, there is high chance of this voltage destroying the individual GPIO line or more likely the entire microcontroller on the Arduino.
  4. There is a cumulative limit to what an Arduino can supply or sink - the 40 mA mentioned adds up across active GPIOs, up to the rated limit, which varies depending on which microcontroller and at what Vcc voltage your particular flavor of Arduino operates. This cumulative limit is typically good for just a few GPIOs going full blast.
  5. There are specialized versions of the Arduino, such as the Ruggeduino, that has "overcurrent and overvoltage protection on all I/O pins and 5V/3.3V outputs, ESD protection on all I/O pins and USB port, total microcontroller overcurrent protection, and operation at up to 24V", which one could risk with a direct motor drive experiment. Ruggeduino
  6. While the question does not specify what motor, very low current motors, such as various cellphone vibration motors, miniature piezo motors, and low-power DC geared or ungeared motors can actually be operated directly off a conventional Arduino without protection, but it is still not recommended. Miniature DC motor From this site

  7. Keep in mind, also, that if the Arduino is powered from a USB connection, that itself has current limits, which might constrain the motor's operation.


Reasons why a motor driver circuit is used:

  1. Driver can deliver high voltage and current to the motor. A usual microcontroller can't deliver that much of current unless it is specifically designed to drive those kind of loads.

  2. A properly designed driver circuit includes protection circitry so that it suppress the back-EMF and doesn't send it back to the logic side.

Therefore when you use a proper driver circuit, your Arduino is protected.

As JYelton pointed out, Arduino pin can't deliver 40A it could be 40ma.


Your Answer

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