Servo Motor Micro SG90 – 360 Degree Continuous Rotation

The SG90 – 360 degree continuous rotation servo is a micro size analog servo.

ARDUINO SERVO MOTOR 360 DEGREE

Code: SG90-360

Categories: , Tags: , , , ,
  • 1 SG90 360 Degree Continuous Rotation Servo motor with attached 9.5″ control cable
  • 3 arms/horns for various interface applications
  • Screws for mounting arms to the servo and mounting the servo

KEY FEATURES OF SERVO MOTOR MICRO SG90 – 360 DEGREE CONTINUOUS ROTATION:

  • Very small micro size
  • 360 degree continuous rotation of the shaft
  • Nylon gears
  • Analog drive

Unlike normal servos that can be commanded to an exact position within a range of about 180 or 360 degrees, these servos will rotate continuously in either direction with no ability to position it to a particular position.  Think of them more like small DC motors with a motor controller built-in that powers the motor and that allows you to start/stop and control direction.

The gears are nylon.  The nominal speed of rotation is 120RPM @ 5V.  The motor can be run slower down to about 60RPM, but will stall easier at lower speeds.

These types of servos are handy for driving wheels on a micro-robot where space is limited or if you just want to spin something.

These are driven by a PWM signal.  A pulse width of approximately 1500uS (PWM value of about 185) will cause the motor to stop.  A higher PWM value over about 195 will rotate the motor in one direction while a lower PWM value under about 175 will cause the motor to rotate in the opposite direction.  If the PWM value drops below about 500uSec (PWM value of 62), the motor will also stop due to insufficient drive.

If using the Servo.h library, as shown in the code below, a command of about 90 will cause the motor to stop.  A value of 0 will cause it turn in one direction at full speed and a value of 180 will cause it to turn in the other direction at full speed.

Motor Connections

The built-in cable has a 3-pin female connector that is usually mated with a male header.

1×3 Female Connector

  • Brown = Ground
  • Red = 5V
  • Orange = PWM Signal

OUR EVALUATION RESULTS:

These servos are fairly strong little motors.

The servo runs on 5V with a current draw about 10mA at idle and 110mA to 250mA when being commanded to move depending on how it is being operated.  Current draw can get up to a maximum of 300mA under a stall condition, so be aware of that.  One SG90 can typically be driven off the power pin of an Arduino when experimenting as long as you don’t stall it, but motors in general are electrically noisy and power hungry devices.  It is always better to drive them directly off of a power supply rather than trying to power from the on-board MCU regulator whenever possible

If you do decide to run it directly off the MCU, you can help avoid most problems by running the power and ground from the MCU over to a breadboard and then to the servo.  By placing a fairly large electrolytic cap of around 470-1000uF across the power and ground on the breadboard, that will help to insulate the MCU from some of the power surges of the motor.

The program below can be used to exercise a 360 degree servo motor.  It simply spins the servo in one direction for 3 seconds, pauses and the spins in the opposite direction for 3 seconds.

To use, hookup 5V and ground to the servo power and ground pins.  Connect the PWM pin to pin 9 on the MCU, but this can be changed to any PWM capable pin.

Servo Motor Micro SG90 360 Degree Test Program

/*
  Exercise 360 degree Servo motor
  Simply runs servo in one direction for 2 seconds and then reverses direction
  Uses built-in Servo.h library
*/
#include "Servo.h"
#define SERVO_PIN 9   // Can use any PWM pin

Servo servo;          // creates servo object used to control the servo motor
//===============================================================================
//  Initialization
//===============================================================================
void setup()
{
  servo.attach(SERVO_PIN); // assigns PWM pin to the servo object
}
//===============================================================================
//  Main
//===============================================================================
void loop()
{
  servo.write(0); //Spin in one direction
  delay(3000);
  servo.write(90); // Stop
  delay(500);
  servo.write(180);  // Spin in opposite direction
  delay(3000);
  servo.write(90);  // Stop
  delay(500);
}

BEFORE THEY ARE SHIPPED, THESE SERVO MOTORS ARE:

  • Inspected
  • Tested @ 5V using test program

Notes: 

  1. None

TECHNICAL SPECIFICATIONS

Motor Model Generic SG90 (China)
Drive Type Analog
Degree Rotation 360° continuous
 Operating Ratings
Voltage 4.8-6VDC  (5V Typical)
Current (idle) 10mA (typical)
Current (typical during movement) 100-250mA
Current (stall) 300mA (measured)
Stall Torque 1.7 kg-cm (per spec)
Full Speed 120 RPM @ 5V
 Dimensions
 Cable Length  24cm  (9.5″)
 Motor Housing L x W x H 23 x 12 x 26mm (0.9 x0 .5 x  1″)
 Motor Height (w/ shaft) 32mm (1.26″)
Motor Housing Width with Mounting Ears 32mm (1.26″)