Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use SG90 Servo Motor: Examples, Pinouts, and Specs

Image of SG90 Servo Motor
Cirkit Designer LogoDesign with SG90 Servo Motor in Cirkit Designer

Introduction

The SG90 Servo Motor by AC (Manufacturer Part ID: servo motor) is a small, lightweight, and cost-effective servo motor widely used in robotics, RC vehicles, and hobby electronics projects. It is capable of precise angular movement, making it ideal for applications requiring controlled motion. The SG90 operates using Pulse Width Modulation (PWM) signals, allowing users to control its position with high accuracy.

Explore Projects Built with SG90 Servo Motor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Controlled Servo Motor with Precise Angle Control
Image of Servo_Controll_Using_Arduino: A project utilizing SG90 Servo Motor in a practical application
This circuit uses an Arduino UNO to control a Tower Pro SG90 servo motor. The Arduino provides power and ground to the servo, and sends control signals via digital pin D9 to rotate the servo between 90 and 180 degrees in a loop.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU Controlled SG90 Servo Motor
Image of servo with esp8266: A project utilizing SG90 Servo Motor in a practical application
This circuit connects an ESP8266 NodeMCU microcontroller to an SG90 servo motor. The NodeMCU's D4 pin controls the servo motor via PWM signal, while both the NodeMCU and servo motor share a common ground and the servo is powered directly from the NodeMCU's VIN pin. The circuit is designed to allow the microcontroller to control the position of the servo motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Itsy Bitsy M0 Express Controlled Multi-Servo System
Image of Crab Robot Circuit: A project utilizing SG90 Servo Motor in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Controlled Servo Motor Sequence
Image of Servo : A project utilizing SG90 Servo Motor in a practical application
This circuit consists of an Arduino UNO microcontroller connected to a Tower Pro SG90 servo motor. The Arduino provides power (5V and GND) to the servo and controls its position via digital pin D7. The embedded code on the Arduino cycles the servo through a range of positions with delays between each movement.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with SG90 Servo Motor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Servo_Controll_Using_Arduino: A project utilizing SG90 Servo Motor in a practical application
Arduino UNO Controlled Servo Motor with Precise Angle Control
This circuit uses an Arduino UNO to control a Tower Pro SG90 servo motor. The Arduino provides power and ground to the servo, and sends control signals via digital pin D9 to rotate the servo between 90 and 180 degrees in a loop.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of servo with esp8266: A project utilizing SG90 Servo Motor in a practical application
ESP8266 NodeMCU Controlled SG90 Servo Motor
This circuit connects an ESP8266 NodeMCU microcontroller to an SG90 servo motor. The NodeMCU's D4 pin controls the servo motor via PWM signal, while both the NodeMCU and servo motor share a common ground and the servo is powered directly from the NodeMCU's VIN pin. The circuit is designed to allow the microcontroller to control the position of the servo motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Crab Robot Circuit: A project utilizing SG90 Servo Motor in a practical application
Itsy Bitsy M0 Express Controlled Multi-Servo System
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Servo : A project utilizing SG90 Servo Motor in a practical application
Arduino UNO Controlled Servo Motor Sequence
This circuit consists of an Arduino UNO microcontroller connected to a Tower Pro SG90 servo motor. The Arduino provides power (5V and GND) to the servo and controls its position via digital pin D7. The embedded code on the Arduino cycles the servo through a range of positions with delays between each movement.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotic arms and grippers
  • RC vehicles (cars, boats, planes)
  • Pan-tilt camera systems
  • Automated mechanisms in hobby projects
  • Educational electronics kits

Technical Specifications

Below are the key technical details of the SG90 Servo Motor:

Parameter Value
Operating Voltage 4.8V to 6.0V
Stall Torque 1.8 kg·cm (4.8V), 2.2 kg·cm (6.0V)
Operating Speed 0.12 s/60° (4.8V), 0.10 s/60° (6.0V)
Control Signal PWM (Pulse Width Modulation)
PWM Pulse Range 500 µs to 2400 µs
Angle Range 0° to 180°
Weight 9 g
Dimensions 22.8 mm x 12.2 mm x 29.0 mm

Pin Configuration

The SG90 Servo Motor has a 3-pin connector for interfacing with a microcontroller or power source. The pinout is as follows:

Pin Wire Color Description
1 Brown Ground (GND)
2 Red Power Supply (VCC)
3 Orange PWM Signal Input

Usage Instructions

Connecting the SG90 Servo Motor

  1. Power Supply: Connect the red wire to a 5V power source (e.g., Arduino 5V pin or an external power supply). Ensure the power source can provide sufficient current (at least 500 mA).
  2. Ground: Connect the brown wire to the ground (GND) of your circuit.
  3. PWM Signal: Connect the orange wire to a PWM-capable pin on your microcontroller (e.g., Arduino digital pin 9).

Controlling the Servo with Arduino UNO

The SG90 Servo Motor can be controlled using the Arduino Servo library. Below is an example code snippet to rotate the servo to specific angles:

#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
}

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
  delay(1000); // Wait for 1 second

  myServo.write(180); // Move the servo to 180 degrees
  delay(1000); // Wait for 1 second
}

Best Practices

  • Power Supply: Use a stable power source to avoid erratic behavior. If using multiple servos, consider an external power supply.
  • PWM Signal: Ensure the PWM signal is within the specified range (500 µs to 2400 µs) to prevent damage.
  • Mechanical Load: Avoid overloading the servo to prevent overheating or reduced lifespan.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Servo Not Moving

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check the connections and ensure the power source provides at least 500 mA.
  2. Erratic or Jittery Movement

    • Cause: Noise in the PWM signal or unstable power supply.
    • Solution: Use decoupling capacitors near the servo or a separate power supply for the servo.
  3. Servo Overheating

    • Cause: Excessive mechanical load or prolonged operation at high torque.
    • Solution: Reduce the load or allow the servo to cool down periodically.
  4. Limited Range of Motion

    • Cause: PWM signal out of range or mechanical obstruction.
    • Solution: Verify the PWM signal is within the 500 µs to 2400 µs range and check for physical obstructions.

FAQs

Q: Can I power the SG90 directly from an Arduino?
A: Yes, but only for a single servo. For multiple servos, use an external power supply to avoid overloading the Arduino's voltage regulator.

Q: What happens if I send a PWM signal outside the specified range?
A: The servo may behave unpredictably or get damaged. Always ensure the PWM signal stays within the 500 µs to 2400 µs range.

Q: Can the SG90 rotate continuously?
A: No, the SG90 is a positional servo with a range of 0° to 180°. For continuous rotation, use a continuous rotation servo.

Q: How do I increase the torque of the SG90?
A: The torque is fixed by design. To handle higher loads, consider using a servo with a higher torque rating.

By following this documentation, users can effectively integrate the SG90 Servo Motor into their projects and troubleshoot common issues with ease.