3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Serial Servo Controller w/Arduino - Control Up To 12 Servos At Once Using the Arduino and a USB Connection

Serial Servo Controller w/Arduino - Control Up To 12 Servos At Once Using the Arduino and a USB Connection
I'm going to show you how to use your Arduino to control up to 12 servos at once with minimal jitter.  Using a simple serial interface you can control the position of up to 12 servo channels.  Up to 10 snapshot positions can be saved and played back at any time.  Start up values for each servo can be saved as well.

There are two major parts to the application.  The first part I will discuss is the firmware and hardware.  This includes the Arduino and another board we will use to supply power to the servos.  It's important to isolate the servo power supply from the microprocessor power in case the servos need more current than the battery can supply (imagine all 12 servos stalling at once).  If the power supplies are the same you could have a brownout condition on your microprocessor depending what type of power supply you are using.  I will also show you the firmware required to run this application on the Arduino.

In the second part I will discuss some simple software that will allow you to control the firmware through serial commands.  This software provides an interface to the Arduino firmware to control the servos, save servo start up positions, even record a series of positions, or frames, (of all channels saved at once) to playback in sequence when desired.  The software is .Net based so make sure you have the latest .Net framework installed.  I will be supplying an installer and source code.  

Here is a video demo of the project:
 
Remove these adsRemove these ads by Signing Up
 

Step 1Parts List

Parts List
«
  • IMG_20120103_150523.jpg
  • IMG_20120103_150535.jpg
  • IMG_20120103_150600.jpg
  • IMG_20120103_150141.jpg
The following is a list of material and items I used for this instructable:

1x Arduino Board (Any variant that has a 328p processor)
1x BreadBoard
1x Battery 6.0-8.0Vdc (I used an 800maH LiPoly battery)
1x 1N4004 Diode
2x 220uF 35V Electrolytic Capacitors
4x 3 Pin Headers  (Use as many as you have servos for, I used 4 for this example but the firmware supports up to 12, just repeat)
4x 100 ohm resistors (1 for each servo.  These are used for current limiting.  At 3.3v the resistor limits the amount of current through the microprocessor at 3.3ma if a low impedance load is seen)
1x Small LED
1x 470 ohm resistor
1x Switch (I used a DIP switch for simplicity)
 4x Hobby Servos
Various Jumper Wires
« Previous StepDownload PDFView All StepsNext Step »
12 comments
Jan 6, 2012. 7:07 PMrocketman221 says:
Cool project.
It would be nice to have a web interface so I could control it with any wifi enabled tablet. I think it can be done with php.
Jan 7, 2012. 10:09 PMrocketman221 says:
I was actually thinking of using some wireless serial transmitters from sparkfun to connect the arduino to a serial port on my server.
But I was considering making pan/tilt mounts with servos for a couple of small security cameras.
Feb 27, 2012. 5:27 PMmegaduty says:
Thanks Soshimo! This could help me with my 4 servo and 6 servo biped project.
Feb 27, 2012. 3:40 PMcupolo says:
is what I was looking for a long time thanks so much ....... very nice ;)
Jan 13, 2012. 2:42 PMbqbowden says:
I have a prject for an ardiuno to control groups of selenoids on a schedule. Can you suggest a resurce where I can build this kind of circuit?
Jan 6, 2012. 7:20 PMnjkl44 says:
take a look at my project:
http://www.instructables.com/id/Arduino-Wireless-Animatronic-Hand/
i control 5 servos just by power from arduino and no resistors or anything. I am currently powering 7 right now but i have a lipo im using
Jan 6, 2012. 9:59 AMfuture-tinker says:
cool!

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
10
Followers
1
Author:soshimo