And what’s suppose to happen is it moves a little, waits, then moves back to exactly the same spot as before. But when I connect the Nano to the servo, on the return trip (1515) actually exceeds it’s original position.
Can anyone explain what’s going on?
And how to compensate for that problematically? don’t want to guess and check for calibration purposes.
So would i be able to compensate for that if i were to calibrate the servo?
As in, the difference that you speak of, is it constant or changes every time that i move the servo?
yes i understand there’s no position feedback
but assuming it goes forward at a speed of 1485 (-15 difference) for a certain amount of time, to get back to the origin, wouldn’t it simply going at the opposite speed (+15 difference) for the same amount of time?
You’re using a continuous rotation servo - so there is no position feedback; the servo pulse simply sets the speed. A pulse of 1500 would be neutral speed (i.e. stopped) as opposed to 0 degrees.
Not necessarily. In an ideal world, yes, if you time a motion at a specific speed you should travel the same distance in one direction as another. In reality, small imperfections can impede this, and it’s also likely that 1500 is not the servo’s exact neutral point; it can sometimes be 1595 to 1505 since the potentiometer inside the servo is far from military grade and relies on physical contact between a slider and wiper. Any imprefections in either of these can give a reading which is slightly off (you may actually be traveling at 1486 and 1517 with a neutral position at 1503.
Any internal defects or issues should remain (ideally) constant. Therefore your code would be the one to modify based on observations and testing. These would vary servo to servo.