
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.
The SG90 is a small, lightweight servo motor commonly used in robotics and hobby projects. It provides precise control of angular position and is capable of rotating approximately 180 degrees. The SG90 operates on a 4.8 to 6.0V power supply and is known for its ease of use and affordability.

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.

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.

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.

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.
| Parameter | Value |
|---|---|
| Operating Voltage | 4.8V to 6.0V |
| Stall Torque | 1.8 kg·cm (4.8V) |
| Operating Speed | 0.1 s/60° (4.8V) |
| Rotation Angle | 0° to ~180° |
| Weight | 9g |
| Dimensions | 22.2 x 11.8 x 31 mm |
| Control Signal | PWM (Pulse Width Modulation) |
| Connector Type | 3-pin female header |
The SG90 servo motor has a 3-pin connector with the following pinout:
| Pin Number | Wire Color | Function |
|---|---|---|
| 1 | Brown | Ground (GND) |
| 2 | Red | Power (VCC) |
| 3 | Orange | Signal (PWM Input) |
Below is an example of how 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 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
}
| Issue | Possible Cause | Solution |
|---|---|---|
| Servo does not move | Incorrect wiring or no power | Verify connections and power supply. |
| Servo jitters or moves erratically | Unstable PWM signal or insufficient power | Use a stable power source and check the signal. |
| Servo overheats | Overloaded or forced beyond limits | Reduce load and ensure proper usage. |
| Limited rotation range | PWM signal out of range | Ensure PWM signal is between 1ms and 2ms. |
Q: Can I use the SG90 with a 3.3V microcontroller?
A: Yes, the SG90 can accept a 3.3V PWM signal, but the power supply for the servo itself must still be between 4.8V and 6.0V.
Q: How many SG90 servos can I control with an Arduino?
A: The number depends on the available PWM pins and the power supply capacity. For example, the Arduino UNO has 6 PWM pins.
Q: Can the SG90 rotate continuously?
A: No, the SG90 is a positional servo with a rotation range of approximately 180°. For continuous rotation, use a continuous rotation servo.
Q: Why is my servo making noise but not moving?
A: This could indicate that the servo is overloaded or receiving an incorrect PWM signal. Check the load and signal parameters.
By following this documentation, you can effectively integrate the SG90 servo motor into your projects and troubleshoot common issues.