Below is a short summary and detailed review of this video written by FutureFactual:
How Servo Motors Work: Closed-Loop Gearing, PWM Control, and Arduino Programming
This video explains the inner workings of servo motors used in precision engineering and robotics. It covers how a servo combines a DC motor, a compound gear train, and potentiometer feedback to achieve accurate rotation, and how pulse width modulation signals set the final position. A practical Arduino project demonstrates wiring a servo, a potentiometer, and a 5V supply, then mapping an analog input to a 0–180 degree range using the Servo library. The discussion also touches torque, voltage, stall, and the differences between open loop and closed loop servo designs.
Introduction to Servo Motors
The video introduces servo motors as precision devices that convert electrical energy into mechanical motion with tight control. Unlike a simple DC motor, servos require signals to determine rotation angle and use feedback to hold position.
Internal Architecture and Torque
Inside a servo, you typically find a DC motor driving a compound gear train. The output gear is connected to a potentiometer for position feedback. The torque rating (for example, 9 g or 25 kg) indicates how much force the output can apply at a given distance from the shaft, and this torque increases with higher supply voltage up to the motor’s limits before stalling.
Closed-Loop vs Open-Loop
Closed-loop servos use a physical stop and the potentiometer feedback to minimize position error, delivering better control. Open-loop servos can rotate freely beyond 180 degrees in some designs, but closed-loop types are more common for precise control.
Gear Train and Speed-Torque Conversion
The video walks through a gear train example: an 11-tooth pinion drives a 61-tooth gear, which is connected to a 12-tooth gear, then to a 48-tooth gear, a 13-tooth gear, a 47-tooth gear, a 13-tooth gear, and finally a 42-tooth gear. This arrangement reduces speed and increases torque, turning high-speed rotation into high-torque output with losses ignored for simplicity.
PWM Control and Position Sensing
A servo is controlled by a PWM signal sent to the control board inside the unit. The pulse width determines the position, typically around 50 Hz (every 20 ms). A wide pulse moves the servo left, a narrow pulse moves it right, and the controller tries to keep the position fixed as long as the pulse width remains constant. The servo reads the potentiometer value through a voltage divider and compares it to the target signal to minimize error.
Arduino Project Overview
The video shows how to build a simple Arduino project with a servo, a potentiometer, a breadboard, and a 5V supply. The potentiometer connects to analog input A0, the servo to pin 9, and the 5V rail powers both. Code uses the Servo library to map the potentiometer reading (0–1023) to a 0–180 degree position, sending the result to the servo with a single write() command.
Practical Takeaways
Key takeaways include how voltage affects torque and speed, the importance of datasheets for voltage and stall limits, and the role of feedback in achieving accurate positioning. The Arduino example demonstrates how to implement a basic, extendable servo control system that can be expanded for more advanced robotics and automation projects.