How a positioning servo motor works
Position servo functional diagram
The diagram above shows what happens in a typical positioning servo like the MG90S. It starts with a standard, unmodified DC motor. When the motor rotates a gear mechanism reduces the rotation speed of the output shaft. This provides a substantial torque on the shaft and allows for accurate positioning within it's 180° range.
The output shaft also drives another gear which rotates a potentiometer. The output from the potentiometer provides a voltage indicating the shaft output position and it is fed back into a difference amplifier.
The amplifier produces an error signal which is proportional to the difference between the output position voltage and the input position demand signal. The error signal is then used to drive the motor. When the output position is equal to the demand signal there is no error so the motor remains stationary.
The signal from the output potentiometer is a DC voltage but the input control signal from the Arduino is a pulse of varying width. Before the demand signal can be compared with the output signal the pulse is converted to a DC voltage to match the output of the potentiometer.