Introduction: D-Motor Driver Shield (for Speed Control)

“D-Motor Driver Shield v1.0”
- A low-cost motor driver shield for arduino boards

The purpose of this project is to encourage robot hobbyists to lessen one’s expense when making robots
because every part of a robot must be ideally cheap nevertheless gives off the same function as expensive robot parts.

Features:
- Two motor speed control that can be accessed through PWM
- LED indicators for showing direction of left/right motor
- Reset button

Cost analysis + Materials:
(This is in Philippine Peso:)
PCB = P10
6 and 8 Long Pins = P10 X4 = 40
L293D (Motor Driver IC) = P130
Wire + misc. = P5
LED Red = P3
Capacitors 0.1uF = P5 (optional)
Tact Switch = P3
Push connectors = P10 x 2 = P20

TOTAL: P216 (may vary)
NOTE: 
These prices are relative to one's country or shop. However, making
this DIY motor shield will of course help you save some cash!


Step 1: Construction:

STEP1:
Prepare the shielding pins. I am referring
to the pins that will connect the arduino to the shield.
Make sure you connect all the pins but it is your choice
if you wanted to for example not include the analog read
pins on the shield. This is done by soldering the pins
to the PCB.

STEP2:
Solder the circuit as shown in the schematic. It is
not really hard to understand since everything is done in
series and not in parallel connections. Upon referring
to the schematic, the digital pins are the shield pins and
not of the microcontoller board.

STEP3:
While soldering the circuit, if you don’t
use an etching solution and use PCB’s with copper connections,
try using jumpers like I do. Tip: Use stranded wires as it is
easier to solder.

STEP4:
Once done, if you did step 3 using jumper wires,
use hot glue to make the circuit stable like I do.

STEP5:
Finished! Try out your shield by running motor test
drives by uploading the program and connecting the motors
to the push connectors.

Step 2: Schematic + Sample Program:


Sample Arduino Program:

// D-motor driver sample program
// This program tests motor
// control of the L293D IC
//
// Codes by: D, June 20, 2013

// Motor speed: (255 MAX)
int M_SPD = 150;

// Pin configurations:
const int L_FWD = 5;
const int L_BWD = 6;
const int R_FWD = 10;
const int R_BWD = 9;

void setup()
{
}

void loop()
{
// FORWARD:
analogWrite(L_FWD,M_SPD);
analogWrite(R_FWD,M_SPD);
digitalWrite(L_BWD,LOW);
digitalWrite(R_BWD,LOW);

delay(2000);

// BACKWARD:
analogWrite(L_BWD,M_SPD);
analogWrite(R_BWD,M_SPD);
digitalWrite(L_FWD,LOW);
digitalWrite(R_FWD,LOW);

delay(2000);
}

If you have finished the shield, then congratulations! You just saved at least P200 by making your own shield!
Note: this shield is for experienced arduino users as you may spend more than I have noted if you soldered the circuit wrong.

This shield is somehow based from e-Gizmo’s Motor Driver Shield and the maker of the shield deserves acknowledgement for this project.

If you have more time, please visit my blog at: http://iloverobots11.tumblr.com
Thanks for checking out my instructable!


- D