

A DC motor is an electric motor that converts direct current (DC) electrical energy into mechanical energy. It operates on the principle of electromagnetism, where a magnetic field interacts with a current-carrying conductor to produce rotational motion. DC motors are widely used due to their simplicity, reliability, and ability to provide precise control over speed and torque.








Below are the general technical specifications for a typical DC motor. Note that actual values may vary depending on the specific model.
| Parameter | Typical Value |
|---|---|
| Operating Voltage | 3V to 24V DC |
| Rated Current | 100mA to 2A (depending on load) |
| Stall Current | 1A to 10A (depending on motor size) |
| Speed | 1000 to 10,000 RPM |
| Torque | 0.1 to 10 Nm (varies by model) |
| Power Output | 0.1W to 100W |
| Motor Type | Brushed or Brushless |
For a basic brushed DC motor, there are typically two terminals:
| Pin/Terminal | Description |
|---|---|
| Positive (+) | Connects to the positive terminal of the power supply. |
| Negative (-) | Connects to the negative terminal of the power supply. |
For brushless DC motors, additional control pins may be present, such as Hall sensor outputs or PWM inputs. Refer to the specific motor's datasheet for details.
Below is an example of controlling a DC motor using an Arduino UNO and an L298N motor driver.
// Arduino code to control a DC motor using PWM and an L298N motor driver
// Define motor control pins
const int ENA = 9; // PWM pin for speed control
const int IN1 = 8; // Direction control pin 1
const int IN2 = 7; // Direction control pin 2
void setup() {
// Set motor control pins as outputs
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
void loop() {
// Rotate motor in forward direction
digitalWrite(IN1, HIGH); // Set IN1 high
digitalWrite(IN2, LOW); // Set IN2 low
analogWrite(ENA, 150); // Set speed (0-255)
delay(2000); // Run motor for 2 seconds
// Stop the motor
analogWrite(ENA, 0); // Set speed to 0
delay(1000); // Wait for 1 second
// Rotate motor in reverse direction
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, HIGH); // Set IN2 high
analogWrite(ENA, 200); // Set speed (0-255)
delay(2000); // Run motor for 2 seconds
// Stop the motor
analogWrite(ENA, 0); // Set speed to 0
delay(1000); // Wait for 1 second
}
Motor Does Not Spin:
Motor Spins in the Wrong Direction:
Motor Overheats:
Excessive Noise or Vibration:
Can I connect a DC motor directly to an Arduino? No, the Arduino cannot supply the high current required by most DC motors. Always use a motor driver or an H-bridge circuit.
How do I control the speed of a DC motor? Use PWM signals to vary the voltage applied to the motor, which controls its speed.
What is the difference between brushed and brushless DC motors? Brushed motors use physical brushes for commutation, while brushless motors use electronic commutation, making them more efficient and durable.
Can I power a DC motor with an AC power source? No, DC motors require a direct current power source. Use a rectifier or DC power supply if only AC power is available.