I'm trying to understand this circuit found here. enter image description here

I understand that the Arduino cannot directly run a DC motor because it can only supply 40mA of current and also due to the back EMF which can damage it. I can also understand this circuit if they used an external power supply and used the transistor as a switch to drive the DC motor. But, I do not understand this configuration shown in the pic where the power supply is the arduino itself.


Your confusion lies in what can "supply" power.

Your assumptions are all correct for an IO pin. However the Arduino has more than just IO pins. It has power pins.

These power pins are not controlled in any way by the microcontroller - they are merely connections into the power supply circuit that also powers the microcontroller.

So in that circuit the Arduino's power supply is shared between the Arduino (the MCU) and the motor.

The 5V pin of the Arduino can supply up to 450mA (when powered from USB - 500mA less about 50mA for the MCU) or up to 800mA when supplied with about 6.5V into the barrel jack (any more than that will cause excess heat to be dissipated which will reduce the maximum current the 5V regulator can handle before shutting down).

  • I thought that even the power supply circuit provides 40 mA. I guess I'm wrong there. I tried connecting the DC motor and the Arduino directly at first across the 5V and my Arduino got disconnected from the PC. I thought that this was some kind of current protection inside the Arduino which caused the disconnect and I didn't push it further, which finally brought me to the article I linked. I understand my mistake now. Thanks! Jan 18 '21 at 17:28
  • Official Arduinos and most clones have a "polyfuse" in series with USB bus voltage. Typical USB hubs including root hubs also have over-current protection as well; something usually more sophisticated than a polyfuse. It's entirely possible that your motor uses more than the current Majenko states above, particularly when spinning up or stalled. You may be tripping one or the other or both. The instinct to not tax Arduino and USB port is a good one.
    – timemage
    Jan 19 '21 at 1:12
  • BTW, the 500mA for usb I quoted in my answer is the nominal rating of the polyfuse.
    – Majenko
    Jan 19 '21 at 1:14

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.