I've got an arduino powering a continuous servo rotation motor; both are on wal-warts. The arduino is on a 5V/2A wal-wart and the motor is on a 9V/1A. I shared the grounds. The motor is a SpringRC SM-S4315R.
The setup generally works; and the motor is stopped when i set the control pin to 90 (voltage of 2.5). However, over time this stopping voltage seems to have drifted. I've manually had to shift it to 85; and it seems to have drifted again in the weeks since. When the motor is not in exactly the stopped/centered position, it makes an annoying constipated noise, but doesn't really rotate. It spins fine when I set it to a rotational voltage (control < 70 or control > 110).
Unplugging and replugging in the motor + arduino doesn't seem to solve things. Is there a bad connection, or am I missing a component in the wiring?
Looking at some of the sites below for info on the servo, it appears that the servo is rated for operation at between 4.8v and 6v. Your using a 9V/1A power supply seems inappropriate and might damage the servo or result in erratic operation.
Your using a 9V/1A power supply seems inappropriate and might damage the servo or result in erratic operation.
I agree. Having used many brands of similar servos, I find about 7.5 volts as a safe limit. As you approach 9v the servos get erratic and noisy. Under stall conditions the servo may well burn out.
As an temporary measure, you can try putting 2 power diodes on the servo power line to drop back to a safer level.
In addition remember that the continous rotation servo has been fooled into this mode of operation. There is no true zero point and drift may be difficult to avoid. To get more precise control, I sometimes discarded the internal board and use the servo as a motor/gearbox combo with an external motor controller.