5-30V 10A Dual Channel DC Motor Driver

Cytron
SKU: TH0694 MPN: MDD10A
$23.50 Out of Stock
Ships Today - If you order within hrs mins!


Quality
First

Awesome
Support

Secure
Checkout

Worldwide
Shipping

Out of Stock!

We will email you when this item is back in stock. Please enter your email

Overview

The MDD10A is an advanced dual-channel motor driver designed for precise control of two brushed DC motors. It supports a wide voltage range from 5V to 30V DC and is compatible with various logic levels from 3.3V to 5V, making it versatile for projects involving Arduino and Raspberry Pi. This driver is ideal for applications requiring reliable, continuous high-current upto 10A per channel and 30A for 10 seconds per channel motor control.

Features

The MDD10A boasts features like regenerative braking, solid-state components for faster response and durability, and NMOS H-Bridge for efficient operation without a heat sink. It includes manual activation buttons for each channel and supports both Locked-Antiphase and Sign-Magnitude PWM operation. Note: The device lacks reverse polarity protection, so care should be taken with the power supply input polarity.

  • Dual channel bi-directional driver for brushed DC motors.
  • Voltage range from 5V to 30V DC.
  • 10A continuous and 30A peak (10 seconds) for each channel.
  • Logic Level voltage range from 3.3 to 5V making it compatible with Rasoberry Pi boards and Arduino boards.
  • NMOS bridge for better efficiency.
  • PWM frequency up to 20KHz for speed control
  • Manual test buttons for immediate testing, no microcontroller reuqired.
  • Support both Locked-Antiphase and Sign-Magnitude PWM operation.

Specifications

Key Specifications:

Input Voltage 5V to 30V DC
Current 10A continuous (per channel)
Peak Current 30A for 10 seconds (per channel)
Logic Level 3.3V and 5V compatible with Raspberry Pi and Arduino
PWM Frequency 20KHz
Polarity Protection No
Test Buttons Yes
LED indicators 1 Power Indicator & 4 Output Indicators
Fan No
Heat Sink Not required
Dimensions 84.5mm x 62mm

Pinout

M1A/ M1B Motor 1 termial
M2A/ M2B Motor 2 termial
B+ Connect to positive terminal of the battery*
B- Connect to negative terminal of the battery*
DIR1 Motor 1 direction input
PWM1 Motor 1 PWM speed control input
DIR2 Motor 2 direction input
PWM2 Motor 2 PWM speed control input
GND Ground

* When operating an inductive load, such as a DC brush motor, it's important to use a battery. This is because most power supplies, particularly those with a switching design, have a protection circuit that shuts down upon detecting regenerative current from the motor. In scenarios where a switching power supply is necessary, it's still suggested to connect a battery in parallel. This battery should have the same rated voltage as the power supply to effectively absorb the regenerative current.

Connections & Code

Power
  • B+/B-: Connect it to a battery (5V to 30V DC)
  • GND: Connect it to arduino board ground.
  • M1A/ M1B: Connect to Motor 1
  • M2A/ M2B: Connect to Motor 2

Signal

Connections for Arduino UNO

  • PWM1: Connect it to pin D3
  • DIR1: Connect it to pin D4
  • PWM2: Connect it to pin D9
  • DIR2: Connect it to pin D10

Code

Before we move into coding, first we need to install the Cytron Motor Drivers Library written by Cytron Technologies in the Arduino IDE. 

You can install this library by directly going to Tools > Manage Libraries which opens the Library Manager. In the library manager search for Cytron Motor Drivers Library using the search bar and click on the install button to install the latest version of the library.

After installtion go to File > Examples > Cytron Motor Drivers Library > select any one example.

We are using the example "PWM_DIR_DUAL" from the example menu for the code below.


/*******************************************************************************
 * THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTY AND SUPPORT
 * IS APPLICABLE TO THIS SOFTWARE IN ANY FORM. CYTRON TECHNOLOGIES SHALL NOT,
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR CONSEQUENTIAL
 * DAMAGES, FOR ANY REASON WHATSOEVER.
 ********************************************************************************
 * DESCRIPTION:
 *
 * This example shows how to drive 2 motors using the PWM and DIR pins with
 * 2-channel motor driver.
 * 
 * 
 * CONNECTIONS:
 * 
 * Arduino D3  - Motor Driver PWM 1 Input
 * Arduino D4  - Motor Driver DIR 1 Input
 * Arduino D9  - Motor Driver PWM 2 Input
 * Arduino D10 - Motor Driver DIR 2 Input
 * Arduino GND - Motor Driver GND
 *
 *
 * AUTHOR   : Kong Wai Weng
 * COMPANY  : Cytron Technologies Sdn Bhd
 * WEBSITE  : www.cytron.io
 * EMAIL    : [email protected]
 *
 *******************************************************************************/

 #include "CytronMotorDriver.h"


// Configure the motor driver.
CytronMD motor1(PWM_DIR, 3, 4);  // PWM 1 = Pin 3, DIR 1 = Pin 4.
CytronMD motor2(PWM_DIR, 9, 10); // PWM 2 = Pin 9, DIR 2 = Pin 10.


// The setup routine runs once when you press reset.
void setup() {
  
}


// The loop routine runs over and over again forever.
void loop() {
  motor1.setSpeed(128);   // Motor 1 runs forward at 50% speed.
  motor2.setSpeed(-128);  // Motor 2 runs backward at 50% speed.
  delay(1000);
  
  motor1.setSpeed(255);   // Motor 1 runs forward at full speed.
  motor2.setSpeed(-255);  // Motor 2 runs backward at full speed.
  delay(1000);

  motor1.setSpeed(0);     // Motor 1 stops.
  motor2.setSpeed(0);     // Motor 2 stops.
  delay(1000);

  motor1.setSpeed(-128);  // Motor 1 runs backward at 50% speed.
  motor2.setSpeed(128);   // Motor 2 runs forward at 50% speed.
  delay(1000);
  
  motor1.setSpeed(-255);  // Motor 1 runs backward at full speed.
  motor2.setSpeed(255);   // Motor 2 runs forward at full speed.
  delay(1000);

  motor1.setSpeed(0);     // Motor 1 stops.
  motor2.setSpeed(0);     // Motor 2 stops.
  delay(1000);
}
    

Opps

Sorry, it looks like some products are not available in selected quantity.

OK