

The Arduino Motor Driver Expansion Board is a versatile circuit board designed to enable an Arduino microcontroller to control various types of motors, including DC motors, stepper motors, and servo motors. It provides the necessary power amplification and control signals to drive motors efficiently, making it an essential component for robotics, automation, and motorized projects.








The Arduino Motor Driver Expansion Board typically has the following pin layout:
| Pin Name | Description |
|---|---|
| IN1 | Control signal for Motor 1 (direction) |
| IN2 | Control signal for Motor 1 (direction) |
| IN3 | Control signal for Motor 2 (direction) |
| IN4 | Control signal for Motor 2 (direction) |
| ENA | PWM input for Motor 1 (speed control) |
| ENB | PWM input for Motor 2 (speed control) |
| Pin Name | Description |
|---|---|
| VCC | Logic voltage input (5V from Arduino) |
| GND | Ground connection |
| VM | Motor power supply (6V to 12V) |
| Pin Name | Description |
|---|---|
| SERVO1 | Signal pin for Servo Motor 1 |
| SERVO2 | Signal pin for Servo Motor 2 |
VM pin.VCC pin and ground to the GND pin.SERVO pin and power wires to VCC and GND.IN1, IN2, ENA, etc.) to the corresponding Arduino digital pins.Below is an example code snippet to control a DC motor using the Arduino Motor Driver Expansion Board:
// Define motor control pins
const int ENA = 9; // PWM pin for Motor 1 speed control
const int IN1 = 7; // Direction pin for Motor 1
const int IN2 = 8; // Direction pin for Motor 1
void setup() {
// Set motor control pins as outputs
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
void loop() {
// Rotate motor forward
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
// Rotate motor backward
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, HIGH); // Set IN2 high
analogWrite(ENA, 150); // Set speed (0-255)
delay(2000); // Run motor for 2 seconds
// Stop motor
digitalWrite(IN1, LOW); // Set IN1 low
digitalWrite(IN2, LOW); // Set IN2 low
analogWrite(ENA, 0); // Set speed to 0
delay(2000); // Wait for 2 seconds
}
Motors Not Running:
Motor Running in the Wrong Direction:
IN1 and IN2 (or IN3 and IN4) to reverse the motor direction.Overheating of the Board:
Servo Motor Not Responding:
Can I control more than two DC motors?
Can I use this board with a Raspberry Pi?
What happens if I exceed the current limit?
By following this documentation, you can effectively use the Arduino Motor Driver Expansion Board in your projects!