1
\$\begingroup\$

I've been able to hook up a Futaba S3003 servo directly to my Arduino and it works perfectly. However, when I power it with an external 6 volt DC power supply (instead of the Arduino's onboard 5V) it fails to work.

I'm assuming I need to translate the 5v "language" of the Arduino to the 6v "language" that the servo now uses. Pretty new to this. Any and all help is greatly appreciated.

EDIT: My question, generalized, is how do I use an external power supply, that's more than 5V, with a servo and control it with an Arduino?

Here's a photo of how it's setup (and working). Running on 5V

\$\endgroup\$
4
  • \$\begingroup\$ I wouldn't expect a servo to work when connected directly an I/O pin, because the microcontroller can (usually) only source about 40mA of current. Post a schematic to show how you've connected it in both situations. \$\endgroup\$
    – JYelton
    Dec 18, 2012 at 20:34
  • 2
    \$\begingroup\$ I believe the arduino is used only to generate the ppm wave used to drive the servo. Please explain what do you mean with "it does not work". Does the servo make any noise? I suspect the culript is the external 6V psu. \$\endgroup\$ Dec 18, 2012 at 21:54
  • \$\begingroup\$ @JYelton added a photo and a generalized question. \$\endgroup\$
    – Kevin Mark
    Dec 19, 2012 at 2:38
  • \$\begingroup\$ @VladimirCravero the servo will move a little bit (it twitches, at first) when I initially hooked up to the external but that's about it. I'm thinking I need some additional component in my circuit. \$\endgroup\$
    – Kevin Mark
    Dec 19, 2012 at 2:39

4 Answers 4

2
\$\begingroup\$

The servo on the external 6V source may be failing to work becasue you failed to interconnect the GND of the MCU board to the GND of the external supply.

\$\endgroup\$
1
  • \$\begingroup\$ After doing some more research it looks like this may the underlying issue. Testing now. \$\endgroup\$
    – Kevin Mark
    Dec 19, 2012 at 3:51
0
\$\begingroup\$

Here's how I have mine wired, same scenario:

enter image description here

You won't need the mosfet / diode deal if you don't need to power it off completely.

\$\endgroup\$
-1
\$\begingroup\$

I have a 6 servo robot arm, so I power off a giant 6 volt battery.

All you have to do is short the grounds of the arduino and the servo battery together, and it should work. also, MAKE SURE YOU ARE SENDING THE SERVO SIGNAL BEFORE CONNECTING THE POWER. OR they WILL blow up. I lost a few hundred

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Really? Odd that my servos don't behave that way. \$\endgroup\$ Dec 23, 2012 at 8:00
  • \$\begingroup\$ can you describe what you mean by not behaving? are they just shakey, or do they not move at all, or what? This SHOULD work just fine, so maybe a description of what is going on could hellp \$\endgroup\$
    – lkrasner
    Dec 23, 2012 at 15:51
  • 1
    \$\begingroup\$ I have turned the power on to my servo before powering my microcontroller quite a few times and I've witnessed no adverse effects. \$\endgroup\$
    – Kevin Mark
    Dec 27, 2012 at 3:56
-2
\$\begingroup\$

Be careful. You can burn your arduino doing that. Arduino can't hold the amperes needed to power the stronger servos. I don't really remember but it holds just 500 mili amperes. It's better to do the following:

1 - get one 6 votls battery and plug the positive wire (generally red) to the positive of the battery.

2 - plug the negative wire of the servo to one gnd pin of arduino.

3 - plug the signal wire (yellow or white) to one pwm pin of arduino (the ones with a '~' sign.

\$\endgroup\$
4
  • 2
    \$\begingroup\$ This doesn't answer the question. Also, RC servos do not run off normal PWM. \$\endgroup\$
    – Matt Young
    Aug 3, 2013 at 3:06
  • \$\begingroup\$ @MattYoung - RC servos do run off of a PWM signal. There's really no such thing as "normal" PWM - there are schemes that go to full duty cycle, and schemes that only use variations in a very small duty cycle, which is what an RC servo needs. Both can benefit from connection to a pin with a suitable hardware timer, as that avoids the need for software to precisely end the pulse itself, even if software might need to trigger the start of each output cycle. \$\endgroup\$ Sep 3, 2016 at 15:43
  • \$\begingroup\$ @ChrisStratton I strongly disagree. Servos position is encoded in pulse width varying from .5-1.5 ms. To an extent, what the repetition frequency is doesn't matter. Analog sevos are good up to 50Hz, digital are usually good to ~300Hz. Sure, you can use a PWM module for that, if you have a 16 bit PWM. Anything less won't give enough granularity. Don't ever change your PWM frequency, or anything duty cycle vs. angle will immediately be wrong. I really have no interest in addressing the rest of the pedantry. \$\endgroup\$
    – Matt Young
    Sep 4, 2016 at 15:17
  • \$\begingroup\$ Your recommendation is backwards. You notice that the small duty cycle is challenging, and reject hardware assistance entirely, ignoring that using hardware to define the more critical of the two edges can still be useful - especially if you want to drive more than one servo, since software can start all the pulses together and let them finish automatically. \$\endgroup\$ Sep 4, 2016 at 16:01

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.