I‘ve started to use more Micro Servo Motor SG90S 9G servos controlled by a Nano using the Servo.h library provided in the Arduino IDE. The servo's are inexpensive (cheap) for the small animation projects they are used in.
I noticed an anomaly that is troubling. The servo’s zero position when first install has moved.
My knowledge of servo operation tells me that the position of the arm is based on the millisecond pulse provided from the controller. The servo rotates to the position indicated by the pulse.
I installed a servo and zero’d it before positioning the arm to move a shaft up and down. The servo worked for a few weeks. Today the physical position of the arm for zero has moved 90 degrees compared to when it was installed. Nothing has changed! The code is the same and the Nano used is the same.
I'm using a servo because of zero position. The code zero's the servo before starting. Then the codes moves the arm to the desired position. If zero moves, that is not good.
I’m hoping someone might have some insight into why zero has changed. Maybe there is something I can do to prevent this from happening. Same Nano, same code, just todays reboot put the servo zero arm in a different place for zero.
What is a reasonable expectation for a servo?