A DC gear motor is an electric motor that converts direct current (DC) electrical energy into mechanical energy. It features an integrated gear mechanism that reduces the motor's speed while increasing its torque. This makes it ideal for applications requiring precise control of rotational speed and high torque output. The DC gear motor operates efficiently within a voltage range of 3 to 6 volts, making it suitable for low-power applications.
Below are the key technical details of the DC gear motor (3-6V):
Parameter | Value |
---|---|
Operating Voltage | 3V to 6V |
Rated Torque | 0.5 kg·cm to 1.5 kg·cm (varies) |
No-Load Speed | 100 RPM to 300 RPM (varies) |
Stall Current | ~1.2A (at 6V) |
Gear Ratio | Typically 1:48 or 1:120 |
Shaft Diameter | 3 mm |
Motor Dimensions | ~25 mm x 20 mm x 15 mm |
Weight | ~30 g |
The DC gear motor typically has two terminals for electrical connections:
Pin | Description |
---|---|
+ | Positive terminal for power input (3-6V DC). |
- | Negative terminal for ground connection. |
Below is an example of controlling a DC gear motor using an Arduino UNO and an L298N motor driver:
// Example: Controlling a DC Gear Motor with Arduino UNO and L298N Motor Driver
// Define motor control pins
const int motorPin1 = 9; // IN1 on L298N
const int motorPin2 = 10; // IN2 on L298N
const int enablePin = 11; // ENA on L298N (PWM control)
void setup() {
// Set motor pins as outputs
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(enablePin, OUTPUT);
}
void loop() {
// Rotate motor forward
digitalWrite(motorPin1, HIGH); // Set IN1 high
digitalWrite(motorPin2, LOW); // Set IN2 low
analogWrite(enablePin, 128); // Set speed (0-255, 128 = ~50% speed)
delay(2000); // Run for 2 seconds
// Stop motor
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
delay(1000); // Pause for 1 second
// Rotate motor backward
digitalWrite(motorPin1, LOW); // Set IN1 low
digitalWrite(motorPin2, HIGH); // Set IN2 high
analogWrite(enablePin, 128); // Set speed (0-255, 128 = ~50% speed)
delay(2000); // Run for 2 seconds
// Stop motor
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
delay(1000); // Pause for 1 second
}
Motor Not Spinning:
Motor Overheating:
Inconsistent Speed:
Noisy Operation:
Q: Can I power the motor directly from an Arduino pin?
A: No, the Arduino pins cannot supply enough current to drive the motor. Use a motor driver or external power supply.
Q: How do I reverse the motor's direction?
A: Swap the polarity of the motor's terminals or use a motor driver to control the direction programmatically.
Q: What happens if I exceed the 6V limit?
A: Exceeding the voltage limit can damage the motor's windings or cause overheating. Always stay within the specified range.
Q: Can I use this motor for high-speed applications?
A: No, DC gear motors are designed for low-speed, high-torque applications. For high-speed needs, consider a standard DC motor without a gearbox.