i have previously only been fiddling about with micro servos (SG90s) but have since got a pair of continuous rotation MG996R ("TowardPro" !!) servos.
i had been running my micro servos using the Servo.h library and just using the degrees command;
this seemed to translate okay to the continuous servo with
servo.write(92) being a stop,
servo.write(1) going clockwise (fast) and
servo.write(179) going counter-clockwise fast.
all good, and as expected from my understanding of how servos work.
however, i realize that servos actually have no speed control, you tell it to go the 'x' degrees and it will move to it accordingly - you can slow it down in software using delays between pos='x' commands, but you cannot speed it up.
continuous servos, however, do speed up - writing "0 or 180" degrees would be rotation at its maximum speed, and slowing down as you approach "90" degree as 'stop'.
how does it do this ?
aside from the "PWM" of the pulse signals (as used in
servo.writeMicroseconds(1500);) - is there also a PWM of the voltage level to control the speed of the rotation ?
i am also guessing different (continuous rotation) servos could have different methods depending on the chips used in them ?