Features
- Simplified Motor Control: 4-channel 0.6A 25V L293D controller for seamless Arduino integration. Control 4 DC motors, 2 stepper motors, or 2 servo motors simultaneously.
- Arduino Compatibility: Tested with Arduino Mega, Uno, Diecimila, and Duemilanove boards.
- User-Friendly Design: Large terminal block connectors (10-22AWG), Arduino reset button on top, and a 2-pin terminal block for external power connection.
- Precision Servo Control: Two 5V servo interfaces connected to Arduino’s dedicated high-resolution timer for jitter-free control.
- Versatile Motor Compatibility: Drive up to 4 bi-directional DC motors with 8-bit speed control or 2 stepper motors (unipolar/bipolar) with various stepping modes.
- H-Bridges with Protection: Four H-bridges each provide 0.6A continuous (1.2A peak) current with thermal protection, supporting 4.5V to 25V DC motors.
- Flexible Power Options: Two external terminal power connectors allow separate logic and motor power supplies.
Specifications
- Power Supply: 5V DC to 36V DC
- H-Bridges: 4 × 0.6A (1.2A peak) with thermal protection
- External Terminal Power Interfaces: 2
- Dimensions: 70 × 53 × 20 mm
Pinout
Pin Number |
Function |
1 (GND) |
Ground |
2 (VCC) |
Power Supply (5V) |
3 (EN1) |
Motor 1 Enable |
4 (IN1) |
Motor 1 Input 1 |
5 (IN2) |
Motor 1 Input 2 |
6 (IN3) |
Motor 2 Input 1 |
7 (IN4) |
Motor 2 Input 2 |
8 (EN2) |
Motor 2 Enable |
9 (VCC1) |
External Motor Supply |
10 (GND1) |
External Motor Ground |

Sample Arduino Code
Jumpstart your projects with this sample code to control a DC motor using the Motor Shield. Make sure to download and add the Motor Shield library (AFMotor
) to your Arduino IDE.
#include "AFMotor.h"
AF_DCMotor motor(4);
void setup() {
Serial.begin(9600); // Set up serial communication at 9600 bps
Serial.println("Motor test!");
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
Serial.print("tick");
motor.run(FORWARD);
for (i = 0; i < 255; i++) {
motor.setSpeed(i);
delay(10);
}
for (i = 255; i != 0; i--) {
motor.setSpeed(i);
delay(10);
}
Serial.print("tock");
motor.run(BACKWARD);
for (i = 0; i < 255; i++) {
motor.setSpeed(i);
delay(10);
}
for (i = 255; i != 0; i--) {
motor.setSpeed(i);
delay(10);
}
Serial.print("tech");
motor.run(RELEASE);
delay(1000);
}
Features
- Simplified Motor Control: 4-channel 0.6A 25V L293D controller for seamless Arduino integration. Control 4 DC motors, 2 stepper motors, or 2 servo motors simultaneously.
- Arduino Compatibility: Tested with Arduino Mega, Uno, Diecimila, and Duemilanove boards.
- User-Friendly Design: Large terminal block connectors (10-22AWG), Arduino reset button on top, and a 2-pin terminal block for external power connection.
- Precision Servo Control: Two 5V servo interfaces connected to Arduino’s dedicated high-resolution timer for jitter-free control.
- Versatile Motor Compatibility: Drive up to 4 bi-directional DC motors with 8-bit speed control or 2 stepper motors (unipolar/bipolar) with various stepping modes.
- H-Bridges with Protection: Four H-bridges each provide 0.6A continuous (1.2A peak) current with thermal protection, supporting 4.5V to 25V DC motors.
- Flexible Power Options: Two external terminal power connectors allow separate logic and motor power supplies.
Specifications
- Power Supply: 5V DC to 36V DC
- H-Bridges: 4 × 0.6A (1.2A peak) with thermal protection
- External Terminal Power Interfaces: 2
- Dimensions: 70 × 53 × 20 mm
Pinout
Pin Number |
Function |
1 (GND) |
Ground |
2 (VCC) |
Power Supply (5V) |
3 (EN1) |
Motor 1 Enable |
4 (IN1) |
Motor 1 Input 1 |
5 (IN2) |
Motor 1 Input 2 |
6 (IN3) |
Motor 2 Input 1 |
7 (IN4) |
Motor 2 Input 2 |
8 (EN2) |
Motor 2 Enable |
9 (VCC1) |
External Motor Supply |
10 (GND1) |
External Motor Ground |

Sample Arduino Code
Jumpstart your projects with this sample code to control a DC motor using the Motor Shield. Make sure to download and add the Motor Shield library (AFMotor
) to your Arduino IDE.
#include "AFMotor.h"
AF_DCMotor motor(4);
void setup() {
Serial.begin(9600); // Set up serial communication at 9600 bps
Serial.println("Motor test!");
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
Serial.print("tick");
motor.run(FORWARD);
for (i = 0; i < 255; i++) {
motor.setSpeed(i);
delay(10);
}
for (i = 255; i != 0; i--) {
motor.setSpeed(i);
delay(10);
}
Serial.print("tock");
motor.run(BACKWARD);
for (i = 0; i < 255; i++) {
motor.setSpeed(i);
delay(10);
}
for (i = 255; i != 0; i--) {
motor.setSpeed(i);
delay(10);
}
Serial.print("tech");
motor.run(RELEASE);
delay(1000);
}