360 servo SM-S4315R don't want to stop(

I'm setting with setMicroseconds value, when servo doesn't rotate

after it when i'm writing some position more than 90, servo starts to rotate, and doesn't stop.
For example if I write 91 it will rotate very slowly, but wouldn't stop on needed position (91 degree), it would rotating and rotating slowly without end..
Or if I set 110 all will be like with 91, but faster
or if I set 89 all will be like 91 but in another side

what im doing wrong? i need to stop it for example at 91 and all

#include <Servo.h> 

Servo myservo1;     
 


void setup() 
{ 
  myservo1.attach(2);
  
  myservo1.writeMicroseconds(1370);
 
  myservo1.write(86);

}
 
 void loop()
{  
}

I'm not sure I understand the issue - that servo appears to be a continuous rotating one, so all you can do with it is rotate forwards or backwards at variable speed or stop it. You can't send it to any particular angle without other hardware such as an encoder. What you're observing (I think) is its expected behaviour.

Dear 124 :

WildBill is right on on this one ! What you are seeing is the normal operation of the motor .

I think I can see the App that you are trying to achieve . You and I both know that regular servos don't have a travel range of more than about 220 degrees . I'm assuming that you want to make one to DIAL into a full 360 degree range . Only by mechanical means that I can see as :

There is a " physical stop " on the output gear of a regular servo . The internal " feedback pot " tells the sensing leg of the motor AMPLIFIER that drives the little motor to quit when the amplifier legs , feedback , signal are equal . The required position is achieved ! When the PWM signal to the amplifier leg changes to some NEW value , the amplifier output tells the motor to start rotating . The feedback pot senses the changes and will tell the amplifier by way of a voltage . When the signal voltage ( PWM resolved to a voltage , more exactly ) and the feedback sensed voltage are the same , the amplifier sends no more current for the motor and it stops . 2nd position achieved . AD infinitum ............ The amplifier driving this motor is of a " differential type " .

However , if you would like to create some sort of " dialable degree angle " thing for a regular servo , one would only need know of the servos full travel range in degrees and then do a MATH conversion to match ANY servo's PWM range of 100mS to 200mS to yield a " conversion table " that could be manipulated in software . NOTE : To prevent any irratic servo behavior of " turning on and off " the signals feeding it , the PWM signal is ACTIVE 100 % of the time . It may not change a lot in value ; but should ON ( active ) while the App is running . IF you are worried about saving POWER with this scenario ; switch ONLY the +5 volts feeding the servo ; but NOT the signal feeding the servo ! An important concept to consider .

What a great idea !

What a great idea !

Have you actually tried this, or is it an "idea"? :slight_smile:

If the servo you have is this one:
http://arduino-direct.com/sunshop/index.php?l=product_detail&p=130

then it definitely is a continuous rotation type and it is doing what it is supposed to do.

The "R" on the end of a SpringRC Servo part number means "Robotic" and continuous rotation.

That servo is a good strong one for decent-size vehicles... It also has a trimpot to adjust the STOP value to exactly 90 or what you want.

Stop -> "82"

SM-33

Hi 124bit,
Where are you?? I suppose we have answered your question, and you've found the trim pot that zero's your servo so that 90 can be you're stopping point, but like many others 10 days+ later and you've never even bothered to get back to us.

This is one of the things I hate about forums, perhaps I should just try banging my head on the wall! Anyway I'm off to find someone else to help?

Regards

Mel.