Particular Ardu for Servo

Hi Guys, I want to realize a Project and I need advice from you. I want to control Several Servos. Iam searching for Ardu who i can use as a slave Via I2C connection. As you can see in the Illustration, each servo has one Ardu.

What kind of Arduino can I use for? I can use UNO, but iam searching for thinnest Ardu for this project.

I also need one digital pin for a Servo. I found out that I can use “Pro Mini @16MHz”. Can I use “LilyPad @ 8 MHz?”

What your opinion?


I want to control Several Servos Via I2C connection

Servos don’t “speak” I2C.

…So if you REALLY have a good reason for doing that, you’ll need another Arduino (or some other special servo driver) at the servo to convert I2C into a servo pulse.

OK… Now that I can see your illustration, that could work.

Thank you, i change the text.

Could it work with 8MHz Ardu?

Here is an table:

I can’t view your image.
Please post it on this Forum?

As far as I know an 8MHz Arduino can do most things a 16MHz Arduino can do. It can certainly control a servo.

One Arduino can control several servos - you may not need an Arduino for each servo.


The normal servo library can control up to 12 servos. There are libraries available for controlling up to 20 servos. I don't understand why you'd want to use an external controller.

I gave some reasons why I don't like to use servo control boards in this thread. Here's part of my reasoning.

DuaneDegn: I generally don't want servos moving at constant speed. In the joystick/pan & tilt example, the program accelerates the servo up to speed and decelerates the servo to a stop. The target stopping point is constantly changing as the joystick is moved. So even if the servo controller could handle the acceleration and deceleration (which I don't think it can) the parameters of target position and target speed are constantly changing.

Besides the joystick/servo videos I have a couple other servo videos which demonstrate motion I don't think servo controllers could duplicate.

This is a simple demo showing a normal servo sweep with the position incrementing in a linear manner (servo on the left) vs a sinusoidal motion (servo on the right). I believe only the linear motion could be produced using an external servo controller.

This video is similar to the one I just mentioned, but on a larger scale. By controlling the position of each servo at 50Hz I think more complex motions are possible than simply commanding servos to move at a set speed.

. . .

I'm sure there are plenty of applications where a constant velocity servo performs the desired task just fine. I just find I usually want a more complex motion than an external servo controller can provide.

It would probably be a good idea to let us know what you're trying to do. How will these servos but used?

Heres the Table: I have already tried with two different circuit.

First circuit: On the first circuit, I can see on the oscilloscope, that the ardu can’t create a troublefree PWM-Wave. The Program-protocol is clean. It works. I think the Problem is the timer. (All components including Ardu-board have its own Power-supply)

Second circuit: The second circuit: I can’t program it.

The third circuit now, it will works, BUT each servo has an Ardu-board.

My ultimate goal is to control servos with a Poti over distance. That means, there are two head boards linked by radio modem via RS232 connection.

On the left-side there are Servos/LEDs/whatever and on the right side the Potis.

If you don’t understand something, pls ask me

: )

I do not know why you have linked to the table at the top of Reply #5.

The other links in Reply #5 do not show any circuits. A circuit is a picture showing how wires are connected.

Have you read and considered the earlier Replies you have received. If you respond to each of the questions and comments we can get a better understanding of what is causing you a problem.


You can smooth out the input from your pot but averaging multiple readings.

I posted some code here which uses a ring buffer to average multiple pot readings. This input is then used to move the servo with a constant acceleration. The speed of the servo both ramps up as it starts to move, and ramps back down as it reaches its destination.

Reply #23 shows the code in action.

There are lots of parameters which can be adjusted to modify the motion of the servo.