

A motor (forward/reverse) is an electromechanical device capable of rotating in both clockwise and counterclockwise directions. This bidirectional capability makes it ideal for applications requiring precise control of movement, such as robotics, conveyor systems, automated gates, and other machinery. By reversing the polarity of the voltage applied to the motor, the direction of rotation can be controlled.
Common applications include:








Below are the general technical specifications for a typical forward/reverse motor. Note that actual values may vary depending on the specific motor model.
| Parameter | Specification |
|---|---|
| Operating Voltage | 6V - 24V DC |
| Rated Current | 1A - 5A |
| Stall Current | 10A (varies by model) |
| Power Output | 5W - 50W |
| Speed Range | 100 RPM - 3000 RPM |
| Torque Range | 0.1 Nm - 2 Nm |
| Direction Control | Polarity reversal or H-Bridge circuit |
| Operating Temperature | -10°C to 60°C |
| Motor Type | Brushed DC motor |
The motor typically has two terminals for power input. Additional connections may exist if the motor includes built-in encoders or sensors.
| Pin/Terminal | Description |
|---|---|
| Terminal 1 | Positive voltage input (connect to power supply or H-Bridge circuit) |
| Terminal 2 | Negative voltage input (connect to ground or H-Bridge circuit) |
| Encoder A (optional) | Output signal for encoder channel A (used for speed/direction feedback) |
| Encoder B (optional) | Output signal for encoder channel B (used for speed/direction feedback) |
To control the forward/reverse motor, you can use an H-Bridge circuit or a motor driver module. An H-Bridge allows you to reverse the polarity of the voltage applied to the motor, enabling bidirectional rotation. Below is a step-by-step guide:
Connect the Motor to the Driver:
Power the Motor Driver:
Control the Motor:
Below is an example of how to control a forward/reverse motor using an Arduino UNO and an L298N motor driver.
// Define motor control pins
const int IN1 = 9; // Motor driver input 1
const int IN2 = 10; // Motor driver input 2
const int ENA = 11; // Motor driver enable pin (PWM for speed control)
void setup() {
// Set motor control pins as outputs
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
}
void loop() {
// Rotate motor forward
digitalWrite(IN1, HIGH); // Set IN1 high
digitalWrite(IN2, LOW); // Set IN2 low
analogWrite(ENA, 128); // Set speed to 50% (PWM value: 128 out of 255)
delay(2000); // Run for 2 seconds
// Stop motor
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, LOW); // Set IN2 low
delay(1000); // Wait for 1 second
// Rotate motor in reverse
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, HIGH); // Set IN2 high
analogWrite(ENA, 128); // Set speed to 50% (PWM value: 128 out of 255)
delay(2000); // Run for 2 seconds
// Stop motor
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, LOW); // Set IN2 low
delay(1000); // Wait for 1 second
}
Motor Does Not Rotate:
Motor Rotates in Only One Direction:
Motor Overheats:
Electrical Noise Interference:
Q: Can I use this motor with an AC power supply?
A: No, this motor is designed for DC operation only. Using an AC supply will damage the motor.
Q: How do I control the speed of the motor?
A: Use PWM (Pulse Width Modulation) to control the speed. Most motor drivers support PWM input.
Q: What happens if I reverse the polarity of the motor terminals?
A: Reversing the polarity will change the direction of rotation. This is how bidirectional control is achieved.
Q: Can I connect the motor directly to a microcontroller?
A: No, microcontrollers cannot supply the required current. Always use a motor driver or H-Bridge circuit.