Can you use a single pin to control two servos?

Let's say I have two servos which I want to move at the same time, the same distance. Can I simply wire the signal pins in parallel to one of my Arduino pins to make them both move, or are there going to be some losses in voltage/current which will prevent this from working?

(I'd simply test it out, but I've only got one servo at the moment.)

I don't intend to provide the drive current for them off the Arduino, that would be handled by a seperate 5v regulator. I'm talking just the signal.

I don't intend to provide the drive current for them off the Arduino, that would be handled by a seperate 5v regulator. I'm talking just the signal.

Well the fact that a digital output pin can sink or source up to a max of 40ma, I think you could probably command 100 servos. :wink:

Lefty

1 Like

So you're saying I could run an entire army of robots off a single Arduino as long as I connect all the servos in parallel?

So you're saying I could run an entire army of robots off a single Arduino as long as I connect all the servos in parallel?

No, I said command not run. You can parallel all the grounds and control signals together and CONTROL them with a single Arduino digital output pin.

What you can't do is power several servos from the Arduino +5vdc pin, there is just not enough current capacity. There have been people that couldn't even run one servo with an Arduino without reset problems as the servo just required more current then the Arduino could supply reliably.

I always recommend powering any servos from external +5vdc source using a external regulated power supply or batteries with sufficient current capacity. Be sure to wire the external supply's ground to the Arduino ground.

Lefty

1 Like

You might see problems with long wire runs to the servos; IIRC, they make "inline signal booster" modules for this kind of thing in large-scale R/C aircraft, where multiple servos are used to control certain things (generally large flaps, elevators, and rudders).

Have you seen the open servo project?
http://www.openservo.com/

Quoted from the website:

  • High performance AVR 8-bit microcontroller
  • Compact H-Bridge with high performance MOSFETs
  • Precision control over servo position and speed
  • I2C/TWI based interface for control and feedback
  • Feedback of position, speed, voltage and power
  • Advanced curve based motion profile support
  • EEPROM storage of servo configuration information
  • Software written in C using free development tools
  • I2C/TWI bootloader and GUI programmer

As many servos as you want over I2C and you have more control over the positioning and speed of operation.
Ive got one in the drawer to play with as soon as I get round to it.
As I have an idea for a Hexapod and thought these would be a better way of handling 18 servos for the legs.
and a basic Hi-tek servo with the open servo controller will turn into the equivelent of a high end digital servo.

Gordon

If you plan on powering numerous servos, you might consider a UBEC like below.

http://www.hobbycity.com/hobbyking/store/uh_viewItem.asp?idProduct=6233

No, I said command not run. You can parallel all the grounds and control signals together and CONTROL them with a single Arduino digital output pin.

Heh, yeah, I'm aware of that. I meant 'command'. :slight_smile:

Have you seen the open servo project?
http://www.openservo.com/

Quoted from the website:

  • High performance AVR 8-bit microcontroller
  • Compact H-Bridge with high performance MOSFETs
  • Precision control over servo position and speed
  • I2C/TWI based interface for control and feedback
  • Feedback of position, speed, voltage and power
  • Advanced curve based motion profile support
  • EEPROM storage of servo configuration information
  • Software written in C using free development tools
  • I2C/TWI bootloader and GUI programmer

Hmm, I like that. Kinda like the supermodified servos but open source! :stuck_out_tongue:

Mowcius

Heh. After all this I just realized I can't control the servos from a single pin because the servos have to operate in opposite directions. (And requiring customers to find 'reverse' seervos isn't an option.) Oops.

Guess I can't save a pin there after all.

Heh, I thought of that, but there's no room to do that. :slight_smile:

Adding gears is out of the question as well.

Adding gears is out of the question as well.

Maybe if you stand on your head they will appear to turn the opposite way? Just saying. ;D

Lefty

The Supermodified servos are also open source.
The source for the SuperModified servos can be found here:
Google Code Archive - Long-term storage for Google Code Project Hosting. to browse or download.
And here are instructions for an svn checkout using tortoiseSvn or other svn client.
Google Code Archive - Long-term storage for Google Code Project Hosting.
:wink:

I think the hobby suppliers may sell servo "inverters" for this type of situation.

Richard is right. Just note that both the potentiometer and motor polarity need to be changed.

After all this I just realized I can't control the servos from a single pin because the servos have to operate in opposite directions. (And requiring customers to find 'reverse' seervos isn't an option.)

From this comment it sounds like he's designing something for others to build so the 'creative solutions' don't seem like they'll help. :frowning:

You can get the painful discussion below:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1279972389/0