I am using small dc motors connected to the 5V of the arduino which is known to provide 200mA without damaging it.

The motor I am using is a very common one found in toys -> https://www.sparkfun.com/datasheets/Robotics/ROB-09608.jpg

As I see the maximum current of this motor is 170mA. Does it mean that the motor will not drain more current than that or it means that I need to use a resistor in series with my 5V in order to make sure the current will not pass 170mA?

  • 1
    Note that (like you say) the 200mA is the limit of the VCC pin only. For the IO pins there is a safe limit of 40mA. See the playground for the numbers. – GolezTrol Nov 26 '14 at 0:58

YES (typically resulting in melting the coils). The current used by standard or brushless motors is related to the voltage applied and the load applied. As you approach the load limit, current rises over the limit. There are many ways to control this but controlling the load is the easiest way. DO NOT run the motor through the Arduino even if you think it will be under the 200mA limit. Motors produce a lot of spikes and back-flow.

Here's a tutorial on safely running a motor and controlling the speed: https://learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/overview

enter image description here

  • Thank you so much. But if in the specs of the motor says that it consumes 170mA should I even use a resistor if my source provides more than that? I will not connect it to arduino, you told me it will damage it I will not. I will use an external plug that provides 9 V (same as motor) but it provides 1A. Do I really need to use a resistor in this 1A? I think the motor will only consume what it is designed to, isnt? – Samul Nov 25 '14 at 18:35
  • No, there is nothing about the motor itself that limits the current that will be used. The rating of the motor is how much current it can handle before something fails - usually the insulation on the coil wires overheats and melts, causing shorts and destroying the motor. I have photos of that kind of damage somewhere. It was caused by too much weight/load on the motor. Tuning the current load involves tuning the actual load on the motor. Most motor usages never come close to the limit, so people tend to ignore this issue sometimes. ALL the example programs are like that. – Jasmine Nov 25 '14 at 22:35
  • thank you I didnt know that. I believed that the current specified in the motor datasheet was the current it was gona use and nothign else even if I provided more current. I just did not understand this phrase of yours "Most motor usages never come close to the limit,". If I provide more current, according to you the motor would pass the limit, isnt? Or am I wrong? – Samul Nov 27 '14 at 2:34
  • What I meant by that is, in the examples, they are not loading the motor with a significant load, so they don't need to use any current-limiting scheme. It's such a light load you don't have to worry about it. I would bet most of the examples from the tutorials pull about 30mA from that motor. They are "playing it safe" with the examples, but if you want to get the most from your motor, you won't be playing it safe. – Jasmine Nov 28 '14 at 16:15

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.