I’ve got a SVP-324 and a DS65HB servo, and I’m really a novice for using both.
My understanding is that a servo expects to receive a width-modulated pulse on its signal line at a regular interval, and the width of the pulse indicates the position to which the servo should orient itself. Moreover, the controller–like the SVP324–is capable of sending these pulses, so that all my program really needs to do in theory is effectively say “go to position NNN” (as specified in pulse width, ranging from 450 to 2450 or something like that) and the servo will left or right until it reaches the corresponding position, at which point it will stop.
Am I expecting something incorrectly?
Looking at the description for my servo, there is no indication of its range of motion. Should I infer that its range is 180 degrees, or 360 degrees, or infinite, or some other value?
Anyway, before I describe symptoms, let me advise that I’ve tried both using the SVP’s demultiplexer and hanging the servo off servo port 0, and using the init-extended and target-b API while hanging the servo off pin A6. Both exhibit the same behavior below.
What I’m seeing is that the servo rotates forever, in whichever direction is arguably left or right of wherever I told it to go most recently. So, if I setTarget(0,1400) it starts rotating to the right and will circle over and over until I setTarget(0,1300), at which point it will start turning left forever and forever.
That’s not really what I’d expected the servo to do. Is there some obvious physical flaw–in the servo, in my hookup, in the controller–that might explain it behaving this way? Or are my expectations wrong and it’s acting the way it should?
My guess–and again, I’m a novice so it’s a pretty bad guess–is that the servo internally has some kind of potentiometer to provide it feedback on its position, and that this worthy has broken or disconnected from the servo arm. Does that sound plausible?