The SG90 Micro Servo is a small, lightweight motor designed for precise angular movement. It is widely used in robotics, remote-controlled devices, and hobbyist projects due to its compact size, affordability, and ease of use. The servo can rotate to a specific angle within a range of 0° to 180°, making it ideal for applications requiring controlled motion, such as robotic arms, pan-tilt mechanisms, and model airplanes.
Explore Projects Built with Micro Servo
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
This circuit consists of an Arduino Mega 2560 microcontroller connected to twelve servo motors, each individually controlled by a distinct PWM pin on the Arduino. The servos are powered by a single Polymer Lithium Ion Battery, with all servos sharing a common power (VCC) and ground (GND) connection. The embedded code on the Arduino is designed to randomly position each servo within a 0 to 180-degree range, with a random delay between movements, demonstrating a multi-servo control system possibly for applications like robotics or animatronics.
This circuit is designed to control multiple micro servos using an Arduino Nano and a 16-Channel PWM Servo Driver. The Arduino Nano communicates with the servo driver via I2C to manage the servos, which can be used for various robotic or automation applications.
This circuit consists of an Itsy Bitsy M0 Express microcontroller connected to eight Tower Pro SG90 servos. Each servo is controlled by a different digital or analog output pin on the microcontroller. A single power supply provides +5V and GND to all servos, and the microcontroller is configured with some of its pins interconnected for potential programming or operational purposes.
This circuit is a servo control system powered by a 4 x AAA battery pack, regulated by a step-down DC regulator. An ESP32-S3 microcontroller controls five servos and communicates with a gForceJoint UART sensor, enabling precise servo movements based on sensor inputs.
The SG90 Micro Servo is a 3-wire servo motor with a plastic gear system. Below are its key technical details:
Parameter
Value
Operating Voltage
4.8V to 6.0V
Stall Torque
1.8 kg·cm (at 4.8V)
Operating Speed
0.1 s/60° (at 4.8V)
Rotation Range
0° to 180°
Gear Type
Plastic
Weight
9g
Dimensions
22.2mm x 11.8mm x 31mm
Connector Type
3-pin female header (Dupont)
Pin Configuration
The SG90 Micro Servo has three wires for connection. The pinout is as follows:
Wire Color
Function
Description
Orange
Signal (PWM)
Receives the PWM signal to control the servo angle.
Red
VCC (+)
Power supply input (4.8V to 6.0V).
Brown
Ground (GND)
Ground connection.
Usage Instructions
Connecting the SG90 Micro Servo
Power Supply: Connect the red wire to a 5V power source and the brown wire to ground (GND). Ensure the power supply can provide sufficient current (at least 500mA) to avoid voltage drops.
Signal Input: Connect the orange wire to a PWM-capable pin on your microcontroller (e.g., Arduino UNO pin 9 or 10).
PWM Signal: Use a PWM signal with a frequency of 50Hz (20ms period). The pulse width determines the servo angle:
1ms pulse width: 0° position
1.5ms pulse width: 90° position (center)
2ms pulse width: 180° position
Example: Using the SG90 with Arduino UNO
Below is an example Arduino sketch to control the SG90 Micro Servo:
#include <Servo.h> // Include the Servo library
Servo myServo; // Create a Servo object to control the SG90
void setup() {
myServo.attach(9); // Attach the servo to pin 9 on the Arduino
}
void loop() {
myServo.write(0); // Move the servo to 0 degrees
delay(1000); // Wait for 1 second
myServo.write(90); // Move the servo to 90 degrees (center position)
delay(1000); // Wait for 1 second
myServo.write(180); // Move the servo to 180 degrees
delay(1000); // Wait for 1 second
}
Best Practices
Avoid overloading the servo beyond its torque rating to prevent damage.
Use an external power supply if multiple servos are used, as the Arduino's 5V pin may not provide sufficient current.
Ensure the servo is not stalled (blocked from moving) for extended periods, as this can overheat the motor.
Troubleshooting and FAQs
Common Issues
Servo Not Moving
Cause: Incorrect wiring or insufficient power supply.
Solution: Double-check the connections and ensure the power supply provides at least 4.8V and 500mA.
Servo Jitters or Vibrates
Cause: Electrical noise or unstable power supply.
Solution: Use a capacitor (e.g., 100µF) across the power supply to stabilize voltage.
Servo Moves Erratically
Cause: Incorrect PWM signal or interference.
Solution: Verify the PWM signal frequency (50Hz) and ensure proper grounding.
Servo Overheats
Cause: Prolonged stalling or excessive load.
Solution: Reduce the load on the servo and avoid blocking its movement.
FAQs
Q: Can the SG90 rotate continuously?
A: No, the SG90 is a positional servo with a rotation range of 0° to 180°. For continuous rotation, use a continuous rotation servo.
Q: Can I power the SG90 directly from the Arduino?
A: While possible for a single servo, it is recommended to use an external power supply for reliable operation, especially when using multiple servos.
Q: How do I increase the servo's lifespan?
A: Avoid overloading, stalling, and operating the servo at high temperatures. Use it within its specified voltage and torque limits.
Q: Can I control the SG90 without a microcontroller?
A: Yes, you can use a servo tester or a 555 timer circuit to generate the required PWM signal.