Hi,
I've got a MG996 servo motor i want to connect to a Pro micro, this servo has a strong torque and thus a high stall current (2.5A on the datasheet, but i've measured 1.5A at 5v). But i don't need all that torque for this particular project so i'd like to power it directly from the V pin of the Pro micro without an external power supply, will this damage the arduino or the servo?
thanks
yes it will damage your pin.
By the "V pin" of the micro do you mean the 5V output pin when powering it from Vraw?
If so I don't think it will hurt anything but when you start the motor from a standstill the motor will draw a high current spike (even if unloaded) while the rotor starts to turn. This will overload the board mounted 5V regulator. Sometimes it will reset the micro.
You would be better to get a 5V 2A (or more) plug in power supply and power both the board and motor from it.
V pin as in 5V or V in? I had originally thought you would be powering it directly from your I/O.
Hi,
I mean the Vcc pin, not the Vin.
then everything JR said applies, if you get reverse current it could burn out the regulator.
You need a 5-6V power supply, capable of at least 3 Amperes, for that servo.
2.5A on the datasheet, but i've measured 1.5A at 5v
Your measurement is probably wrong. The start/stall current draw peaks during the first few milliseconds after startup.
"But i don't need all that torque for this particular project so i'd like to power it directly from the V pin of the Pro micro without an external power supply, will this damage the arduino or the servo?"
Maybe the best thing to do is use a multimeter to measure the current being drawn by the servo, or measure the voltage drop on the board when the servo is being driven. Below is some servo test code that you can use to slowly/incrementally move the servo up against its internal hard stops to see how much current it uses (or board voltage drop) when under load.
// zoomkat 3-28-14 serial servo incremental test code
// using serial monitor type a character (a to increase or s
// to decrease) and enter to change servo position
// strings like aaa or ssssss can be sent (use delay to slow)
// for IDE 1.0.5 and later
// Powering a servo from the arduino usually *DOES NOT WORK*.
#include<Servo.h>
Servo myservo;
char dir; //direction character
// possible starting points for servo testing
//microseconds:
//int pos=2400; //microseconds
int pos=1500; //~neutral value for continous rotation servo
//int pos=600;
//degrees:
//int pos=170;
//int pos=90; //~neutral value for continous rotation servo
//int pos=10;
void setup()
{
myservo.attach(7, 400, 2600); //servo control pin, and range if desired
Serial.begin(9600);
Serial.println("serial servo incremental test code");
Serial.println("type a character (a to increase or s to decrease)");
Serial.println("and enter to change servo position");
Serial.println();
}
void loop()
{
if(Serial.available()>0)
{
dir = Serial.read(); //get direction character
if(dir =='a'){ //decrease value
(pos=pos-1); //use larger numbers for larger increments
if(pos<0) (pos=0); //prevent negative number
}
if (dir =='s'){ //increase value
(pos=pos+1);
}
if(pos >= 400) //determine servo write method
{
Serial.println(pos);
myservo.writeMicroseconds(pos);
}
else
{
Serial.println(pos);
myservo.write(pos);
}
} //delay(250); //can be used to slow string increments
}
Apparently another example of misleading specs, also does not get to their claimed torque in similar tests.
Regardless it can still damage or trip the regulator current protection. All it takes it it getting stuck for whatever reason. My guess is that operating current may be too high as well.
Why not size the servo for the job and feed it correctly?
"But i don't need all that torque for this particular project so i'd like to power it directly from the V pin of the Pro micro without an external power supply, will this damage the arduino or the servo?"
The issue is, every time you start the motor from a dead stop it will be in the "stall" condition until the motor rotor gets moving**. This will occur with or without a mechanical load. Of course if you have some load on the motor at startup the "stall" condition will take longer to go away as the motor will take longer to start.
** when the rotor is not moving and power is applied the motor is in a stall condition simply by the fact the rotor is not moving. At this moment in time it is irrelevant whether the rotor is held by some mechanical means or just not moving.
This cannot be seen with a Multimeter, you would need an oscilloscope to view it.
John
People new to electronics consistently underestimate the power requirements of motors and servos - they
want a lot of current, as they are basically a few feet of copper wire directly between the terminals during
stall conditions, ie whenever starting to move or reversing you can expect instantaneous currents of the
order of an amp or more even for a small motor. With larger motors stall currents will be 10's or 100's of
amps.
Hello,
I think that's how i damaged a leonardo some time ago in this configuration:
schematic
It worked in the beggining but the next day i found that the battery labeled there as BAT1(the one in the extreme negative side) was completely discharged, like 0,9v, and the Leonardo was turning off when the servo started rotating. This same leonardo later died completely when i tried to feed to it 12v (trough the Vin pin) in an another project where i was controlling the same motor with a mosfet.
amadeok:
Hi,
I mean the Vcc pin, not the Vin.
You also forgot to mention where your Pro Mini gets its power supply from. It won't be coming out of thin air.
wvmarle:
You also forgot to mention where your Pro Mini gets its power supply from. It won't be coming out of thin air.
Hi it's a Pro Micro (with the 32u4). I was going to power from a 2A 5V phone charger. I'm concerned that the reverse current from the servo might damage the microcontroller if i power both it and the servo from the same source.
Then add a flyback diode.
That power supply should be able to power both.
I was going to power from a 2A 5V phone charger.
You really need 3A. If the charger can't deliver the 2.5A startup current, it may just shut down.
Would this work to protect the board?
schematic with resistor
Below is how to power servos.


zoomkat:
Below is how to power servos.
According to this thread a diode is not required for servos because they have it already built-in with their controller. However earlier i did tried this schematic you posted but the board shut off when the servo started moving. I got it working by powering the micro with 4 AAA nimh batteries and the servo with the 5V 2A phone charger and connecting both to the same ground. Am i missing something? How can i power both the board and the servo from the same source? In that thread they are suggesting "bulk capacitance and high frequency bypass capacitance " but i really don't know what that is.
Am i missing something?
Yes, a lot. You are ignoring the replies explaining how to solve the problem.