

The Rhino MDD20Amp 6V-30V Dual DC Motor Driver is a high-performance motor driver designed to control two DC motors simultaneously. With a current rating of 20 Amps per channel and an operating voltage range of 6V to 30V, this motor driver is ideal for robotics, automation, and other motor control applications. Its robust design ensures reliable operation in demanding environments, making it a popular choice for hobbyists and professionals alike.








Below are the key technical details of the Rhino MDD20Amp motor driver:
| Parameter | Specification |
|---|---|
| Manufacturer | Rhino |
| Part ID | Motor Driver |
| Channels | 2 (Dual-channel) |
| Operating Voltage Range | 6V to 30V |
| Continuous Current | 20A per channel |
| Peak Current | 50A per channel (for short durations) |
| Control Logic Voltage | 3.3V to 5V |
| PWM Frequency | Up to 20 kHz |
| Dimensions | 60mm x 55mm x 15mm |
| Weight | 50g |
The Rhino MDD20Amp motor driver has the following pin layout:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Connect to the motor power supply (6V to 30V). |
| GND | Ground | Common ground for power and logic. |
| INA1 | Logic Input | Input signal to control the direction of Motor A. |
| INB1 | Logic Input | Input signal to control the direction of Motor B. |
| PWM1 | PWM Input | Pulse Width Modulation input for speed control of Motor A. |
| PWM2 | PWM Input | Pulse Width Modulation input for speed control of Motor B. |
| OUTA+ | Motor Output | Positive terminal for Motor A. |
| OUTA- | Motor Output | Negative terminal for Motor A. |
| OUTB+ | Motor Output | Positive terminal for Motor B. |
| OUTB- | Motor Output | Negative terminal for Motor B. |
Below is an example code snippet to control two DC motors using the Rhino MDD20Amp motor driver and an Arduino UNO:
// Define motor control pins
const int INA1 = 2; // Direction control for Motor A
const int INB1 = 3; // Direction control for Motor A
const int PWM1 = 5; // Speed control for Motor A (PWM)
const int INA2 = 4; // Direction control for Motor B
const int INB2 = 7; // Direction control for Motor B
const int PWM2 = 6; // Speed control for Motor B (PWM)
void setup() {
// Set motor control pins as outputs
pinMode(INA1, OUTPUT);
pinMode(INB1, OUTPUT);
pinMode(PWM1, OUTPUT);
pinMode(INA2, OUTPUT);
pinMode(INB2, OUTPUT);
pinMode(PWM2, OUTPUT);
}
void loop() {
// Example: Run Motor A forward at 50% speed
digitalWrite(INA1, HIGH); // Set direction forward
digitalWrite(INB1, LOW);
analogWrite(PWM1, 128); // Set speed (128/255 = 50%)
// Example: Run Motor B backward at 75% speed
digitalWrite(INA2, LOW); // Set direction backward
digitalWrite(INB2, HIGH);
analogWrite(PWM2, 192); // Set speed (192/255 = 75%)
delay(5000); // Run for 5 seconds
// Stop both motors
analogWrite(PWM1, 0); // Stop Motor A
analogWrite(PWM2, 0); // Stop Motor B
delay(2000); // Wait for 2 seconds
}
Motors Not Running
Overheating
Erratic Motor Behavior
PWM Signal Not Working
Can I use this motor driver with a 3.3V microcontroller?
What happens if I exceed the 20A current rating?
Is reverse polarity protection included?
Can I control brushless motors with this driver?
By following this documentation, you can effectively integrate the Rhino MDD20Amp motor driver into your projects and troubleshoot common issues with ease.