

The Adafruit Gear-Reduced Stepper Motor (Small) is a compact and versatile stepper motor designed for applications requiring precise control of rotation. Its built-in gear reduction mechanism increases torque while reducing speed, making it ideal for projects where controlled, high-torque motion is essential. This motor is particularly well-suited for robotics, automation, 3D printing, and CNC applications.
Common applications include:








Below are the key technical details of the Adafruit Gear-Reduced Stepper Motor (Small):
| Parameter | Value |
|---|---|
| Motor Type | Bipolar Stepper Motor |
| Step Angle (without gear reduction) | 7.5° per step |
| Gear Reduction Ratio | 1:64 |
| Effective Step Angle | ~0.117° per step (with gears) |
| Rated Voltage | 5V DC |
| Rated Current | 190 mA per phase |
| Torque (with gear reduction) | ~1.5 kg·cm |
| Shaft Diameter | 3 mm |
| Dimensions | 28 mm x 28 mm x 20 mm |
| Weight | ~30 g |
The motor has four wires for its bipolar configuration. These wires correspond to the two motor windings.
| Wire Color | Function | Description |
|---|---|---|
| Red | Coil A (positive) | Connect to one side of winding A |
| Blue | Coil A (negative) | Connect to the other side of winding A |
| Green | Coil B (positive) | Connect to one side of winding B |
| Black | Coil B (negative) | Connect to the other side of winding B |
Note: Ensure proper connection to a stepper motor driver to avoid damage.
Connect to a Stepper Motor Driver:
Power Supply:
Control Signals:
Below is an example of how to control the Adafruit Gear-Reduced Stepper Motor using an Arduino UNO and an A4988 stepper motor driver:
// Include the Stepper library for controlling stepper motors
#include <Stepper.h>
// Define the number of steps per revolution for the motor
// With a 1:64 gear reduction, the effective steps per revolution is 2048
#define STEPS_PER_REV 2048
// Initialize the Stepper object with steps per revolution and motor pins
Stepper myStepper(STEPS_PER_REV, 8, 9, 10, 11);
// Pins 8, 9, 10, 11 are connected to the motor driver
void setup() {
// Set the motor speed (in RPM)
myStepper.setSpeed(10); // 10 RPM for slow, precise movement
// Initialize serial communication for debugging
Serial.begin(9600);
Serial.println("Stepper Motor Test");
}
void loop() {
// Rotate the motor 1 full revolution clockwise
Serial.println("Rotating clockwise...");
myStepper.step(STEPS_PER_REV);
delay(1000); // Wait for 1 second
// Rotate the motor 1 full revolution counterclockwise
Serial.println("Rotating counterclockwise...");
myStepper.step(-STEPS_PER_REV);
delay(1000); // Wait for 1 second
}
Explanation of the Code:
Stepper library simplifies stepper motor control.STEPS_PER_REV constant accounts for the gear reduction, ensuring precise control.setSpeed() function sets the motor speed in revolutions per minute (RPM).step() function moves the motor by a specified number of steps (positive for clockwise, negative for counterclockwise).Motor Not Moving:
Motor Vibrates but Does Not Rotate:
Overheating:
Skipping Steps:
Q: Can I power the motor directly from the Arduino UNO?
A: No, the Arduino UNO cannot supply sufficient current for the motor. Use an external power supply and a motor driver.
Q: What is the advantage of the gear reduction mechanism?
A: The gear reduction increases torque and precision, making the motor suitable for applications requiring fine control and high torque.
Q: Can I use this motor for continuous rotation?
A: Yes, but stepper motors are designed for precise positioning rather than high-speed continuous rotation. For continuous rotation at high speeds, consider using a DC motor.
Q: How do I determine the correct current limit for my driver?
A: Refer to the motor's rated current (190 mA per phase) and set the driver’s current limit accordingly to avoid overheating or damage.
This concludes the documentation for the Adafruit Gear-Reduced Stepper Motor (Small).