Well, here I am again.
After trying to make my robot dog walk, and it fell over and had a pretty hard impact, one of the leg servos is no longer working. The servo with the issue has somewhat more resistance to being turned by hand than the others, when powered off. The servo is unresponsive when the robot's base program is running (All the other motors lock up, but this one can still be turned by hand fairly easily.)
My wiring is a bit too complex to explain here, but here's the basic idea:
Pins 2-13 of the Arduino Mega are connected to the 12 servos, which are powered by a LiPo battery separate from the Arduino.
Pins 30-35 are connected to the RC receiver.
Pin 24 is connected to 5v through a piezo speaker and a resistor to limit the current
The RC receiver is powered by the Arduino's 5v pin
I think it's a wiring issue, given that my wires are often times pulled on as the robot moves.
Why? To determine which servo has the problem? I already know which one, and I didn't change any code whatsoever when this happened. The robot just fell over and the motor stopped working.
Edit: I guess I worded my post wrong, I'm not worried that the robot fell over, that's just from my walking program needing work.
The problem I'm trying to solve is a servo having issues after the impact.
Turning a powered servo by hand is a good way of damaging the internal gearing. Even without power it's not a good thing to do so if you're doing much of that you're lucky that only one servo has gone bad.