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

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

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

Introduction

The Servo SG90 is a small, lightweight servo motor widely used in hobby projects, robotics, and remote-controlled devices. It is designed to provide precise control of angular position, making it ideal for applications such as steering mechanisms, robotic arms, and pan-tilt camera systems. Its compact size, affordability, and ease of use make it a popular choice for beginners and experienced makers alike.

Explore Projects Built with Servo SG90

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 Servo SG90 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
Itsy Bitsy M0 Express Controlled Multi-Servo System
Image of Crab Robot Circuit: A project utilizing Servo SG90 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
ESP8266 NodeMCU Controlled SG90 Servo Motor
Image of servo with esp8266: A project utilizing Servo SG90 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
Arduino Sensor Shield Controlled Servo Motors
Image of robotarm_sensorshield: A project utilizing Servo SG90 in a practical application
This circuit utilizes an Arduino Sensor Shield v5.0 to interface with two types of servo motors: an SG90 servo motor and two MG996R servo motors. The SG90 is connected to pin 6 of the shield for PWM control, power (5V), and ground. Each MG996R servo motor is similarly connected to pins 4 and 5 of the shield for PWM control, power, and ground, allowing for independent control of the servo motors via the Arduino platform.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Servo SG90

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 Servo SG90 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 Crab Robot Circuit: A project utilizing Servo SG90 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 with esp8266: A project utilizing Servo SG90 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 robotarm_sensorshield: A project utilizing Servo SG90 in a practical application
Arduino Sensor Shield Controlled Servo Motors
This circuit utilizes an Arduino Sensor Shield v5.0 to interface with two types of servo motors: an SG90 servo motor and two MG996R servo motors. The SG90 is connected to pin 6 of the shield for PWM control, power (5V), and ground. Each MG996R servo motor is similarly connected to pins 4 and 5 of the shield for PWM control, power, and ground, allowing for independent control of the servo motors via the Arduino platform.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

  • Model: SG90
  • Type: Analog Servo Motor
  • Operating Voltage: 4.8V to 6.0V
  • Operating Speed: 0.1 seconds/60° at 4.8V, 0.09 seconds/60° at 6.0V
  • Torque: 1.8 kg·cm at 4.8V, 2.2 kg·cm at 6.0V
  • Weight: 9 grams
  • Angle Range: 0° to 180°
  • Control Signal: Pulse Width Modulation (PWM)
  • Connector Type: 3-pin female header (compatible with standard servo connectors)

Pin Configuration and Descriptions

The Servo SG90 has a 3-pin connector with the following pinout:

Pin Number Wire Color Function Description
1 Brown Ground (GND) Connect to the ground of the power supply
2 Red Power (VCC) Connect to a 4.8V-6.0V power source
3 Orange Signal (PWM) Receives PWM signal for position control

Usage Instructions

How to Use the Servo SG90 in a Circuit

  1. Power Connection: 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.
  2. Signal Connection: Connect the orange wire to a PWM-capable pin on your microcontroller (e.g., Arduino).
  3. PWM Signal: Send a PWM signal to the servo to control its position. The pulse width determines the angle:
    • 1ms pulse width corresponds to 0°.
    • 1.5ms pulse width corresponds to 90° (center position).
    • 2ms pulse width corresponds to 180°.

Important Considerations and Best Practices

  • Power Supply: Avoid powering the servo directly from the microcontroller's 5V pin, as it may not provide enough current. Use an external power source if possible.
  • PWM Frequency: The SG90 typically operates at a PWM frequency of 50Hz (20ms period).
  • Avoid Overloading: Do not exceed the torque rating to prevent damage to the servo.
  • Mechanical Stops: The servo has built-in mechanical stops to limit its range to 180°. Forcing it beyond this range can damage the gears.

Example Code for Arduino UNO

Below is an example of how to control the Servo SG90 using an Arduino UNO:

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

Code Explanation:

  • The Servo library simplifies controlling the SG90.
  • The attach() function links the servo to a specific PWM pin.
  • The write() function sets the servo's position in degrees (0° to 180°).

Troubleshooting and FAQs

Common Issues and Solutions

  1. Servo Not Moving:

    • Cause: Insufficient power supply.
    • Solution: Use a dedicated power source capable of providing at least 500mA.
  2. Servo Jittering:

    • Cause: Electrical noise or unstable power supply.
    • Solution: Add a decoupling capacitor (e.g., 100µF) across the power supply.
  3. Servo Overheating:

    • Cause: Prolonged operation under high torque or incorrect PWM signal.
    • Solution: Ensure the servo is not overloaded and verify the PWM signal is within the correct range.
  4. Limited Range of Motion:

    • Cause: Incorrect PWM signal or mechanical obstruction.
    • Solution: Check the PWM signal and ensure there are no physical obstructions.

FAQs

Q: Can I use the Servo SG90 with a 3.3V microcontroller?
A: Yes, but you must power the servo with 4.8V-6.0V and use a level shifter for the PWM signal if necessary.

Q: How many SG90 servos can I control with an Arduino?
A: The number depends on the available PWM pins and the power supply's capacity. Ensure the power supply can handle the total current draw.

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: What is the lifespan of the SG90?
A: The lifespan depends on usage conditions, but it is generally durable for hobby projects when operated within its specifications.