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.
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: https://www.arduino.cc/en/Products/Compare
I have already tried with two different circuit.
First circuit: serial communication - Arduino to Arduino - #13 by LLucas - Programming Questions - Arduino Forum
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: I2C - sending value - Programming Questions - Arduino Forum
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.