By definition, a Servo Motor needs real-time feedback from the raw output (the raw position of the shaft) to adjust to the correct desired position accurately. In the SG90 Motor (Fig-1), I have never explicitly used such a feedback mechanism; instead, I have always calibrated the output position using the on-period of the PWM signal.
I am continuously feeding the SG90 Motor with a known-width PWM signal. Is this not equivalent to feeding a known number of pulses to a Stepper Motor to set the shaft position precisely without real-time feedbak? If so, can it be said that the SG90 is a stepper Motor?
There are a lot of explanations online. I have wished to hear your version as well others of this Forum. This will help me to make a summary and do the necessary experiments to establish that SG90 is a Servo Motor.
I am posting below one of the online explanations. Will you please, explain where the control mechanism is? Is it inside the Motor Assembly? Should I dis-assemble the Motor Structure to see it?
"Servo motors like the SG90 operate based on a closed-loop control system. They have a built-in feedback mechanism (usually a potentiometer) that continuously compares the motor's actual position with the desired position sent by the control signal (typically PWM, Pulse Width Modulation). This feedback loop allows servo motors to accurately position themselves and maintain that position."
The use of 'servo' and 'servo motor' is often mixed up.
A 'servo' is normally used in the hobby sector, e.g. for RC-controlled model aeroplanes or ships. It is controlled by pulses of different lengths.
'servo motors' are used in industry. Are much bigger and often controlled similarly to steppers.
No, it's completely different. The movement of a stepper is controlled by the number of pulses and there is no positional feedback.
A servo's position is controlled by the width of the pulse.
I have dismantled my SG90 (Fig-1) and the good news is this that the Motor Shaft is coupled (through reduction gears) with the shaft of the rotary potentiometer. As the Servo turns, the voltage value of the wiper-point of the potentiometer changes (checked by Ohm Meter) which acts as a feed back signal for the internal KC8801 based tiny controller (Fig-2). This is a closed loop system.
Next point is to study how the input PWM signal is conditioned by the feed back signal to control the position of the Motor shaft precisely.
You can tell the SG90 is a servo by treating the system as a black box and completely ignoring the insides -- the inputs are a electronic position signal (PWM) and external disturbances and loads, and the output is a mechanical position that tracks the position signal.
In Arduino Platform, the SG90 is referred to as Servo Motor. The terminology is meaningful in the sense that the Motor's shaft position is being controlled by a Servo System.
On repeated requests/questions, ChatGPT has provided a good amount of information on the necesssity and working principles of the KC8801 Motor Controller, Cheng Technology.