Dual Motor Driver 5 Amp ( RKI – 1004 )

 #1> Introduction

Dual motor driver is dual H-bridge module which can control 2 DC motors with 5 A capacity each and 1 Stepper motor 5 A/Phase. This module supports high speed PWM signal. This module easily connects with micro-controller to control the motors in bipolar mode. It is a module which works with any module which gives output voltage 3-5 V. This driver module can control any small to big motors.


#2> Specifications:

  1. Input voltage: 12V to 18V

  2. Output voltage 3V to 5V

  3. Output current rating per Motor(2 DC Motor / 1 Stepper Motor) : 0 to 5A

#3> Features:

  1. Can control 2 DC motors at a time or one stepper motor

  2. With the help of battery/power supply to circuit it will drive the motors as per the input from RC circuit / Microcontroller / PC output or any other circuit it can control motor in bipolar mode.

  3. Supports high PWM signal

  4. Soft Start and Stop
    provides long life to gearboxes.


#4> Pin configuration:


Refer following figure for pin configuration given below.

 


PIN Description
VCC Supply voltage to any other circuit which gives output voltage 3-5V
VDD For external power supply like battery.
GND Ground Reference
Motor-1(Screwed connector) Motor + and Motor-
Motor-2(Screwed connector) Motor + and Motor-
1A and 1B (Male header) Motor 1 Signal pins
2A and 2B(Male header) Motor 2 Signal pins

 

#5> Steps for program IDE sketch:

Step 1. Install PL2303 driver

Step 2. Open Arduino IDE

Step 3. Select com port

Step 4. Select Board (Arduino UNO)

Step 5. Open sample code

Step 6. Burn/Upload 

#6> Driver connection with Arduino:


#7> Arduino sample code:

Here is the sample code to run 2 DC motors in 2 different configuration.

// motor one

int in1 = 9;

int in2 = 8;

// motor two

int in3 = 7;

int in4 = 6;

void setup() {

// set all the motor control pins to outputs

       pinMode(in1, OUTPUT);

       pinMode(in2, OUTPUT);

       pinMode(in3, OUTPUT);

       pinMode(in4, OUTPUT);

}

void demoOne() {

      // this function will run the motors in both directions at a fixed speed

      // turn on motor A

      digitalWrite(in1, HIGH);

      digitalWrite(in2, LOW);

      // turn on motor B

     digitalWrite(in3, HIGH);

     digitalWrite(in4, LOW);

     delay(2000);

     // now change motor directions

     digitalWrite(in1, LOW);

     digitalWrite(in2, HIGH);
 
     digitalWrite(in3, LOW);
 
     digitalWrite(in4, HIGH);

     delay(2000);

     // now turn off motors

     digitalWrite(in1, LOW);

     digitalWrite(in2, LOW);

     digitalWrite(in3, LOW);

     digitalWrite(in4, LOW);

}

void demoTwo() {

     // this function will run the motors across the range of possible speeds

     // note that maximum speed is determined by the motor itself and the operating voltage

     // by your hardware

     // turn on motors

     digitalWrite(in1, LOW);

     digitalWrite(in2, HIGH);

     digitalWrite(in3, LOW);

     digitalWrite(in4, HIGH);

     // accelerate from zero to maximum speed

     for (int i = 0; i < 256; i++)
     {
     delay(20);
     }

     // decelerate from maximum speed to zero

     for (int i = 255; i >= 0; --i)
     for (int i = 255; i >= 0; --i)
     {
     delay(20);
     }

     // now turn off motors

     digitalWrite(in1, LOW);
     
     digitalWrite(in2, LOW);

     digitalWrite(in3, LOW);

     digitalWrite(in4, LOW);

}

void loop()

{

    demoOne();

    delay(1000);

    demoTwo();

    delay(1000);

}


Note: DO NOT GIVE HIGH LOGIC IN BOTH MOTOR SIGNAL PINS AT A TIME.