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

How to Use Tower Pro SG90 servo: Examples, Pinouts, and Specs

Image of Tower Pro SG90 servo
Cirkit Designer LogoDesign with Tower Pro SG90 servo in Cirkit Designer

Introduction

The Tower Pro SG90 is a small, lightweight servo motor widely used in robotics, RC vehicles, and hobby electronics projects. Known for its precision and ease of use, the SG90 is ideal for applications requiring controlled rotational motion. It features a rotation range of approximately 180 degrees and is controlled via Pulse Width Modulation (PWM) signals, making it compatible with microcontrollers like Arduino.

Explore Projects Built with Tower Pro SG90 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!
Arduino UNO Controlled Servo Motor with Precise Angle Control
Image of Servo_Controll_Using_Arduino: A project utilizing Tower Pro SG90 servo 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 Tower Pro SG90 servo 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 Tower Pro SG90 servo 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
Arduino UNO Controlled Dual SG90 Servo Circuit
Image of Servo Wiring erm, tutorial?: A project utilizing Tower Pro SG90 servo in a practical application
This circuit consists of an Arduino UNO microcontroller connected to two Tower Pro SG90 servos. The servos are powered by the Arduino's 5V output and share a common ground with the Arduino. The signal pins of the servos are controlled by digital pins D2 and D3 on the Arduino, allowing for independent servo actuation through programmed instructions.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Tower Pro SG90 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!
Image of Servo_Controll_Using_Arduino: A project utilizing Tower Pro SG90 servo 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 Tower Pro SG90 servo 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 Tower Pro SG90 servo 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
Image of Servo Wiring erm, tutorial?: A project utilizing Tower Pro SG90 servo in a practical application
Arduino UNO Controlled Dual SG90 Servo Circuit
This circuit consists of an Arduino UNO microcontroller connected to two Tower Pro SG90 servos. The servos are powered by the Arduino's 5V output and share a common ground with the Arduino. The signal pins of the servos are controlled by digital pins D2 and D3 on the Arduino, allowing for independent servo actuation through programmed instructions.
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

Technical Specifications

Below are the key technical details of the Tower Pro 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 sec/60° (4.8V) / 0.10 sec/60° (6.0V)
Rotation Range ~180°
Control Signal PWM (Pulse Width Modulation)
Weight 9g
Dimensions 22.2mm x 11.8mm x 31mm
Connector Type 3-pin female header (Dupont)

Pin Configuration

The SG90 servo has a 3-wire connector with the following pinout:

Wire Color Pin Name Description
Brown GND Ground connection
Red VCC Power supply (4.8V to 6.0V)
Orange Signal PWM control signal input

Usage Instructions

Connecting the SG90 Servo

  1. 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 per servo).
  2. PWM Signal: Connect the orange wire to a PWM-capable pin on your microcontroller (e.g., Arduino pin 9 or 10).
  3. Mounting: Use the included servo horns and screws to attach the servo to your project.

Controlling the Servo with Arduino

Below is an example code snippet to control the SG90 servo 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
}

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
}

Important Considerations

  • Power Supply: Avoid powering the servo directly from the Arduino's 5V pin if multiple servos are used, as this may exceed the current capacity of the Arduino's regulator. Use an external power source instead.
  • PWM Signal: Ensure the PWM signal is stable and within the servo's operating range (typically 1ms to 2ms pulse width for 0° to 180° rotation).
  • Mechanical Limits: Do not force the servo beyond its physical rotation range, as this may damage the internal gears.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Servo Not Moving:

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check the wiring and ensure the power supply provides at least 4.8V and sufficient current.
  2. Jittery or Erratic Movement:

    • Cause: Unstable PWM signal or electrical noise.
    • Solution: Use a decoupling capacitor (e.g., 100µF) across the power supply and ensure proper grounding.
  3. Overheating:

    • Cause: Prolonged stall condition or excessive load.
    • Solution: Reduce the load on the servo and avoid stalling it for extended periods.
  4. Limited Rotation Range:

    • Cause: Incorrect PWM signal range.
    • Solution: Verify the PWM signal is within the servo's operating range (1ms to 2ms pulse width).

FAQs

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

Q: How many SG90 servos can I control with an Arduino?
A: The number depends on the available PWM pins and the power supply. The Arduino UNO has 6 PWM pins, but ensure your power source can handle the total current draw.

Q: Can I use the SG90 with a Raspberry Pi?
A: Yes, the SG90 can be controlled using the Raspberry Pi's GPIO pins with a PWM signal. However, a dedicated PWM driver (e.g., PCA9685) is recommended for precise control.