Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

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

Image of Micro Servo Design with Micro Servo in Cirkit Designer

Introduction

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!
Image of Arduino Mega 2560 Controlled Multi-Servo Random Positioning System: A project utilizing Micro Servo  in a practical application
Arduino Mega 2560 Controlled Multi-Servo Random Positioning System

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.

Open Project in Cirkit Designer
Image of Itsy Bitsy M0 Express Controlled Multi-Servo System: A project utilizing Micro 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.

Open Project in Cirkit Designer

Common Applications

Technical Specifications

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

  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) to avoid voltage drops.
  2. Signal Input: Connect the orange wire to a PWM-capable pin on your microcontroller (e.g., Arduino UNO pin 9 or 10).
  3. 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

Troubleshooting and FAQs

Common Issues

  1. 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.
  2. 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.
  3. Servo Moves Erratically

    • Cause: Incorrect PWM signal or interference.
    • Solution: Verify the PWM signal frequency (50Hz) and ensure proper grounding.
  4. 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.