I am trying to run three hobby servos at the same time, along with some LEDs and a sound chip. When operated separately everything works fine, even two of the servos together work fine. However if I try to run all three servos the Arduino switches off shortly after the servos start to move.
I suspect that the current draw from the servos is more than my 1200mAh battery system can supply, which causes the Arduino to not have enough operating power. But what I don't know is how to solve that. Capacitors, I suspect. If that is truly the case, then any suggestions on a value and where to include in the circuit?
Here are more details on what I am using:
Board
Arduino ProMini 5v
Servo 1 specs
Operating Voltage: 4.8-6.0 Volts
Current Drain (4.8V): 5.4mA/idle and 150mA no load operating
Current Drain (6.0V): 5.5mA/idle and 180mA no load operating
Servos 2 & 3 specs
Operating Voltage: 4.8-6.0 Volts
Current Drain (4.8V): 8.8mA/idle and 220mA no load operating
Current Drain (6.0V): 9.1mA/idle and 280mA no load operating
If I am supplying these servos with 7.4v then I assume their current drain would rise to be about 220mA for the first one and 340mA each for the second two. So, by those estimates, the total current drain would be about 900mA. Add in the LEDs (120mA) and sound (100mA) and my system is near the capacity of the batteries.
Here's an Eagle schematic of my servo setup. I've left the LEDs and sound out of there since just getting the servos working would be a good step forward.
I would have thought that the answer is obvious - you need a power supply capable of supplying more current. Capacitors won't help a whole lot. A bigger battery, in this case.
OldSteve:
I would have thought that the answer is obvious - you need a power supply capable of supplying more current. Capacitors won't help a whole lot. A bigger battery, in this case.
Thank you.
Upon thinking about it further, I went off on a bit of a tangent talking about my LED and sound devices. Those don't run at the same time as the servos, and so are irrelevant. My true current requirement is only 900mA at 7.4v. So, with that in mind, I am going to try a linear regulator to lower the voltage to 6v. Perhaps lowering the current drain will allow me to utilize the current battery configuration.
Upon thinking about it further, I went off on a bit of a tangent talking about my LED and sound devices. Those don't run at the same time as the servos, and so are irrelevant. My true current requirement is only 900mA at 7.4v. So, with that in mind, I am going to try a linear regulator to lower the voltage to 6v. Perhaps lowering the current drain will allow me to utilize the current battery configuration.
I think you're still pushing it with your battery size. You only quoted the no-load current consumption of the servos, and also aren't taking the startup current into account. Your three servos could easily be drawing 3A at startup, if they start at the same time.
If you try a linear regulator, it needs to be a low-dropout type. Standard linear regulators, (7806 etc), have a dropout voltage in excess of 2V.
You'd do much better to use a switching DC-DC converter. And even then, your battery life will be very short. Less than 2 hours by the time the LEDs and sound are taken into account.
OldSteve:
I think you're still pushing it with your battery size. You only quoted the no-load current consumption of the servos, and also aren't taking the startup current into account. Your three servos could easily be drawing 3A at startup, if they start at the same time.
If you try a linear regulator, it needs to be a low-dropout type. Standard linear regulators, (7806 etc), have a dropout voltage in excess of 2V.
You'd do much better to use a switching DC-DC converter. And even then, your battery life will be very short. Less than 2 hours by the time the LEDs and sound are taken into account.
Make the power wires for the servos come directly from the power source, with another pair of separate power wires for the arduino also coming directly from the power source?
That way any servo current will have minimal effect on the arduino power circuit.
Make the power wires for the servos come directly from the power source, with another pair of separate power wires for the arduino also coming directly from the power source?
That way any servo current will have minimal effect on the arduino power circuit.
Tom...
Thanks Tom. I had come across the concept of servo "noise" in my reading, but wasn't sure how to counteract it aside from capacitors. Thinking that I would save space in my small project I combined wires in a way that might not have been wise.
bluejets:
Servos rated at 6v max will not like being supplied by 7.4v as in your diagram.
I am definitely concerned about their longevity at the higher voltage. I need to determine the best way to achieve 6v in my project. I initially thought two 1.2a LiPos regulated down to 6v would be best, but now I am wondering if a single LiPo with a boost converter would be better, but from what I understand there is a loss in current from those devices. My requirements seem be gravitating towards a source capable of providing 6v at 2a.
Many thanks for all of the advice. This is a big learning process for me, and having a place to bounce around my ideas for feedback has been invaluable.
It's usually the processor browning out and/or resetting. I have found that running servos from a completely independent power supply does away with the jitters (if not caused by software, that is!) Your servos probably draw considerably more than a few hundred milliamps when they change direction.