Hello all!
I am hoping to get some help with an issue I a having with this continuous rotation servo. I am simply looking for the points where the motor turns clockwise, counterclockwise, and stops. The only reliable turn I am getting is clockwise at a pusle period of 1 microsec. It the proceeds to gradually slow down until it reaches 12000 microsecs, where the motor starts to jitter more than it does rotate. And that is the behaviour I keep seeing from the range of 1.2 to 2.2 mircosecs. The datasheet says that it has a neutral period of 1.5 microsecs, but the motor never stops, and it surely doesn’t rotate in the other direction.
I also have two of those motors handy, and both have the same performance issue. Additionally, I tried to dial-in the stop position using the middle-point positioner, but to no avail. It never stopped. The jitternes lessened some , but it didn’t stop. I also called tech support and they told me to come here.
Let me know how else I can communicate my problem. Any help would be greatly appreciated.
#include <Servo.h>
Servo myServo;
int milli2secConv = 1000;
int test = 0;
void setup() {
Serial.begin(9600);
myServo.attach(9);
myServo.writeMicroseconds(1000);
}
void loop() {
// put your main code here, to run repeatedly:
// simple code where I manually changed the values to see if I can dial into the right period
myServo.writeMicroseconds(1200);
delay(2*milli2secConv);
myServo.writeMicroseconds(1500);
delay(3*milli2secConv);
// myServo.writeMicroseconds(1000);
// delay(2*milli2secConv);
myServo.writeMicroseconds(1800);
delay(3*milli2secConv);
myServo.write(0);
delay(2*milli2secConv);
// test to iterate through the different speeds to see where the motor changed behavior
for(test = 0; test < 180; test++){
myServo.write(test);
Serial.println(test);
delay(1*milli2secConv);
}
}