

The SmartElex 15S DC Motor Driver is a high-performance motor driver designed to control a single DC motor with precision and efficiency. It supports a continuous current rating of 15A and a peak current of 30A, making it ideal for demanding applications. The driver uses Pulse Width Modulation (PWM) for smooth and efficient speed control. Its robust design and versatile features make it suitable for robotics, automation systems, electric vehicles, and other motor control applications.








| Parameter | Value |
|---|---|
| Operating Voltage Range | 6V to 30V |
| Continuous Current | 15A |
| Peak Current | 30A |
| Control Signal Type | PWM (Pulse Width Modulation) |
| PWM Frequency Range | Up to 20 kHz |
| Logic Voltage Range | 3.3V to 5V |
| Motor Channels | Single |
| Dimensions | 60mm x 50mm x 20mm |
| Weight | 50g |
| Pin Name | Description |
|---|---|
| VIN | Power input for the motor (6V to 30V). Connect to the motor power supply. |
| GND | Ground connection for the motor power supply. |
| OUT1 | Motor output terminal 1. Connect to one terminal of the DC motor. |
| OUT2 | Motor output terminal 2. Connect to the other terminal of the DC motor. |
| PWM | PWM input signal for speed control. Accepts 3.3V or 5V logic levels. |
| DIR | Direction control input. High or low signal determines motor rotation. |
| EN | Enable pin. High signal enables the motor driver; low signal disables it. |
// Example code to control the SmartElex 15S DC Motor Driver with Arduino UNO
// Define pin connections
const int pwmPin = 9; // PWM signal pin (connect to PWM pin on motor driver)
const int dirPin = 8; // Direction control pin (connect to DIR pin on motor driver)
const int enPin = 7; // Enable pin (connect to EN pin on motor driver)
void setup() {
// Set pin modes
pinMode(pwmPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
// Enable the motor driver
digitalWrite(enPin, HIGH);
}
void loop() {
// Rotate motor in one direction at 50% speed
digitalWrite(dirPin, HIGH); // Set direction
analogWrite(pwmPin, 128); // Set speed (128 = 50% duty cycle)
delay(2000); // Run for 2 seconds
// Rotate motor in the opposite direction at 75% speed
digitalWrite(dirPin, LOW); // Change direction
analogWrite(pwmPin, 192); // Set speed (192 = 75% duty cycle)
delay(2000); // Run for 2 seconds
}
Motor Not Running:
Motor Running in the Wrong Direction:
Motor Speed Not Changing:
Driver Overheating:
No Response from the Driver:
Q1: Can I use this driver with a 24V motor?
Yes, the driver supports motors with operating voltages between 6V and 30V, including 24V motors.
Q2: What happens if the motor draws more than 15A?
The driver can handle peak currents of up to 30A for short durations. Prolonged overcurrent may cause overheating or damage.
Q3: Can I control the motor driver with a Raspberry Pi?
Yes, the driver accepts 3.3V logic signals, making it compatible with Raspberry Pi GPIO pins.
Q4: Is reverse polarity protection included?
No, the driver does not have built-in reverse polarity protection. Ensure correct polarity when connecting the power supply.