Can you control the angle of a continuous rotation servo?
If you're talking about a modded R/C servo, no, you can't.
It isn't really a servo anymore - no feedback.
How do you control the speed of the servo?
Pretty much, you can't. There may be a small amount of control either side of the null position, but it is usually quite load dependent.
Experimentation. If you try timings which would put the servo at 90 degrees (depends where the pot was left or how well-balanced the resistors are), you should find a point where it stops. Use the "writeMicroseconds" method for fine control.
(depending on Servo library version, you can write the pulse lengths directly to the "write" method too)
Is the Servo.h library meant for continuous rotation servos too
You can use it, but they're not servos anymore, they're geared motors with a single wire direction control.
Could you guys post some code meant solely for continuous rotation servos
You need to experiment for yourself - any values we give for the stationary point may well be off for your devices (and your devices themselves may all be different).
If you wire up a pot, and map the 0..1023 range to something like 544..2500, use these values as parameters to "writeMicroseconds" and print them to the serial, you should be able to get close to the null position pretty quickly.
Since it's not modded, it is possible to control angle without the servo.h library?
It is a servo, because sparkfun said it was. (otherwise I will return it and say You lied to me.)
So i can control the angle.
I guessing the code is myservo.write(pos)
It's not quite working, when i type 90 or 270, it doesn't go to that spot. You mentioned writeMicroseconds, would that involve a different method of controlling the servo with the servo.h library?
Still not sure if i can control speed.
Direction, could it be myservo.write(0-pos) ?
Still not sure if servo.h works with (Legit) continuous rotation servos.
If you write a sketch to write an "angle" of 90, you should then be able to use the trim control on the (ex-) servo to set your stationary point. Then values greater than 90 will start it rotating in one direction, and values less than 90 will set it going in the other. [/edit]
Feedback mechanism, if i had one, would that mean the arduino could double-check where the servo is?
I'm pretty sure Servos have a small potentiometer attached to the shaft to tell it it's current position, allowing it to adjust itself based on what you send down the data line. The Arduino simply tells it where to go, and it figures out when it's there.
I'm pretty sure Servos have a small potentiometer attached to the shaft to tell it it's current position, allowing it to adjust itself based on what you send down the data line.
That is correct. However for modified servos converted for continuous rotation the pot is either mechanically disconnected from the moving gear train, or replaced with two fixed resistors. A modified servo is no longer a servo, but rather morphed into a bi-directional variable speed geared motor.