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

Servo Motor (SG90)

Image of Servo Motor (SG90)

Servo Motor (SG90) Documentation

Introduction

The SG90 Servo Motor is a small, lightweight, and inexpensive servo motor commonly used in hobbyist projects for precise control of angular position. It is widely popular in robotics, RC (Radio Control) vehicles, and various DIY electronics projects due to its ease of use and affordability.

Common Applications and Use Cases

  • Robotics: Used for controlling the movement of robot arms, legs, and other parts.
  • RC Vehicles: Employed in steering mechanisms and throttle control.
  • DIY Projects: Ideal for creating automated systems, such as opening/closing doors, rotating cameras, and more.
  • Educational Purposes: Great for teaching the basics of servo motors and control systems.

Technical Specifications

Key Technical Details

Specification Value
Operating Voltage 4.8V - 6.0V
Stall Torque 1.8 kgf·cm (4.8V), 2.2 kgf·cm (6.0V)
Operating Speed 0.1 s/60° (4.8V), 0.08 s/60° (6.0V)
Control Signal PWM (Pulse Width Modulation)
Angle Range 0° to 180°
Weight 9g
Dimensions 22.2mm x 11.8mm x 31mm

Pin Configuration and Descriptions

Pin Number Pin Name Description
1 GND Ground
2 VCC Power Supply (4.8V - 6.0V)
3 Signal PWM Signal Input for Position Control

Usage Instructions

How to Use the Component in a Circuit

  1. Power Connection:

    • Connect the VCC pin of the SG90 to a 5V power supply.
    • Connect the GND pin to the ground of the power supply.
  2. Signal Connection:

    • Connect the Signal pin to a PWM-capable output pin of a microcontroller (e.g., Arduino).

Important Considerations and Best Practices

  • Power Supply: Ensure that the power supply can provide sufficient current. The SG90 can draw significant current, especially under load.
  • PWM Signal: Use a PWM signal with a frequency of 50Hz. The pulse width determines the angle of the servo.
  • Avoid Overloading: Do not force the servo beyond its mechanical limits (0° to 180°) to prevent damage.
  • Heat Management: Prolonged use under heavy load may cause the servo to heat up. Allow it to cool down periodically.

Example: Connecting SG90 to Arduino UNO

Circuit Diagram

Arduino UNO          SG90 Servo Motor
-----------------    -----------------
5V  ----------------> VCC
GND ----------------> GND
Pin 9 --------------> Signal

Arduino Code Example

#include <Servo.h> // Include the Servo library

Servo myServo; // Create a Servo object

void setup() {
  myServo.attach(9); // Attach the servo to pin 9
}

void loop() {
  myServo.write(0); // Move to 0 degrees
  delay(1000); // Wait for 1 second
  myServo.write(90); // Move to 90 degrees
  delay(1000); // Wait for 1 second
  myServo.write(180); // Move to 180 degrees
  delay(1000); // Wait for 1 second
}

Troubleshooting and FAQs

Common Issues Users Might Face

  1. Servo Not Moving:

    • Solution: Check the power connections and ensure the PWM signal is correctly connected. Verify that the power supply provides sufficient current.
  2. Servo Jittering:

    • Solution: Ensure a stable power supply. Noise in the power line can cause jittering. Adding a capacitor across the power supply can help stabilize it.
  3. Limited Range of Motion:

    • Solution: Verify that the PWM signal is within the correct range (1ms to 2ms pulse width). Adjust the code to ensure the servo receives the correct pulse width.

FAQs

  • Q: Can I use the SG90 with a 3.3V microcontroller?

    • A: The SG90 is designed for 4.8V to 6.0V operation. Using it with a 3.3V microcontroller may not provide reliable performance. Use a level shifter or a separate 5V power supply.
  • Q: How do I increase the torque of the SG90?

    • A: The torque is determined by the design of the servo. To increase torque, consider using a servo with a higher torque rating.
  • Q: Can I control multiple SG90 servos with one Arduino?

    • A: Yes, you can control multiple servos using different PWM-capable pins on the Arduino. Ensure the power supply can handle the combined current draw of all servos.

This documentation provides a comprehensive guide to understanding, using, and troubleshooting the SG90 Servo Motor. Whether you are a beginner or an experienced user, this guide aims to help you make the most of this versatile component.

Example Projects

sister
Image of sister: A project utilizing Servo Motor (SG90) in a practical application
This circuit consists of a Wemos D1 Mini microcontroller connected to four SG90 servomotors. Each servomotor is controlled by a separate digital output pin (D5, D6, D7, D8) from the Wemos D1 Mini. The servomotors share a common power supply from the 5V pin and a common ground with the microcontroller.
Servo_Controll_Using_Arduino
Image of Servo_Controll_Using_Arduino: A project utilizing Servo Motor (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.
servo with esp8266
Image of servo with esp8266: A project utilizing Servo Motor (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.
robotarm_sensorshield
Image of robotarm_sensorshield: A project utilizing Servo Motor (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.

Example Projects

Image of sister: A project utilizing Servo Motor (SG90) in a practical application
sister
This circuit consists of a Wemos D1 Mini microcontroller connected to four SG90 servomotors. Each servomotor is controlled by a separate digital output pin (D5, D6, D7, D8) from the Wemos D1 Mini. The servomotors share a common power supply from the 5V pin and a common ground with the microcontroller.
Image of Servo_Controll_Using_Arduino: A project utilizing Servo Motor (SG90) in a practical application
Servo_Controll_Using_Arduino
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.
Image of servo with esp8266: A project utilizing Servo Motor (SG90) in a practical application
servo with esp8266
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.
Image of robotarm_sensorshield: A project utilizing Servo Motor (SG90) in a practical application
robotarm_sensorshield
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.