Hi everybody!
I am trying to control the rotation angle of my Futaba S3010 servo(continuous rotation) with an arduino diecimila. If I try the sample code of the arduino (name of the code: SWEEP, control signal on pin 9) I can see that the motor doesn't stop at 180 degrees.
Trying my own code, I can see that the servo can rotate in both directions, but never stops if a control signal is applied (stop when signal zero).
I would like it to stop at 90 degrees. Any idea???
Please please! thanks a lot
Not sure what you're saying - are you saying that at say servo.write (90) the motor should stop rotation, and at, say (100) it starts to rotate clockwise, or at (80) anti-clockwise?
You may find it will only stop at, say 91, or 92, or some value around there, but zero will be full on in one direction.
A continuous modded servo has lost the ability to turn to a particular angle; what you've got is simply a compact motor and gearbox, with a convenient, but possibly inexact, single wire interface.
As I understand it, the precise "position" that stops the motor depends on how you modified it, the resistor values used, etc., and must be determined by experimentation.
-j
Thanks a lot for your answers, and sorry as I had not been very clear explaining my problem.
In fact, using the Servo library, the motor stops at write(78).
For 0 < angle < 78, the motor turns clockwise and for 78<angle<180 the motor turns counter-clockwise.
When I wrote about a '0' signal, it was because I also tried to generate my own signal without using the servo library and generating impulsion of for example 1,5ms HIGH and 18,5 LOW. But generating the signal in this way, I could stop the motor only applying a constant LOW signal.
Please could you confirm that 'A continuous modded servo has lost the ability to turn to a particular angle;' ?
Because that's what I am trying to do. I need my servo to turn 90degrees. How can I manage to do that if the continous servo has lost the ability to turn to a particular angle?
Thanks a lot!!
I need my servo to turn 90degrees
So why did you mod it?
A servo has a pot inside which acts as a feedback mechanism.
The shaft of the pot and the drive shaft of the servo are coupled.
If you remove the coupling, or replace the pot with resistors, then the servo has no feedback - the servo electronics don't know where the output shaft is positioned.
All the "servo" (it doesn't really deserve the term) can do now is rotate in one direction or the other, but it can never be accurately be positioned, unless, perhaps, you add an external pot and use this pot as in input to your Arduino.
Or add limit switches
Please could you confirm that 'A continuous modded servo has lost the ability to turn to a particular angle;' ?
Yes, that is absolutely correct. Once a servo has been modified for continuous rotation, is has lost the ability to turn to a particular angle. The modification removes the angle-sensing component.
It sounds like you need an un-modified servo.
Thanks for your answers!
I didn't modify my servo and they were bought like this so I was thinking that it was a special kind of continuous rotation servo. I just have had the clue of the problem (I am working on a project which has been started by other team before, so sometimes don't have all the information!). In fact the servo have been modified by the supplier.
So... I guess I will have to buy another unmodified servo...!
If you have any other idea, please don't hesitate to communicate it to me!
Thanks a lot