0% found this document useful (0 votes)
89 views5 pages

Motor Driver Circuit For Arduino

This document provides instructions to build a $1 motor driver circuit for an Arduino board using an L293D dual H-bridge motor driver IC. The circuit allows controlling 2 DC motors or 1 stepper motor and a servo motor by connecting the motors to screw terminals and controlling the motors by setting digital pins of the Arduino high or low. The circuit is assembled by soldering the components including the L293D IC onto a PCB board and connecting the pins to headers. Code is provided to test controlling each motor in both directions by writing high or low to the corresponding pin and to sweep a servo from 0 to 170 degrees.

Uploaded by

Eko Hadi Susanto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views5 pages

Motor Driver Circuit For Arduino

This document provides instructions to build a $1 motor driver circuit for an Arduino board using an L293D dual H-bridge motor driver IC. The circuit allows controlling 2 DC motors or 1 stepper motor and a servo motor by connecting the motors to screw terminals and controlling the motors by setting digital pins of the Arduino high or low. The circuit is assembled by soldering the components including the L293D IC onto a PCB board and connecting the pins to headers. Code is provided to test controlling each motor in both directions by writing high or low to the corresponding pin and to sweep a servo from 0 to 170 degrees.

Uploaded by

Eko Hadi Susanto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Motor Driver Circuit for Arduino

by Imetomi in electronics

Introduction: $1 Motor Driver Circuit for Arduino

The story of this motor shield is that I wanted to make a robot for my multifunctional
brainwave controlled system and I decided to share this with you. It's a very simple circuit I
used the L293D IC that is a dual bridge motor driver IC. I also added an output for a servo
motor. Finally this circuit was able to control 2 DC motors or 1 stepper motor and a servo motor.

So let's get started!

Step 1: Gathering the Parts


For this project you'll need only a few parts:

 2 Screw Terminals
 L293D IC
 3 Header Pin
 9 Header Pin (90 degrees)
 1k Resistor
 Red LED
 Wires
 A PCB Board

Tools:

 Soldering Iron
 Solder
 Wire Stripper/Cutter

Step 2: Soldering
As you can see I used a LinkIt ONE but you can use an Arduino UNO as microcontroller. And
you can connect the pins to any I/O pin of the microcontroller. First insert the parts in the holes
of the PCB then solder to it.Step 3: Wiring Up

I used some copper wires and following the schematic connected the pins of the IC to the header
pins. Doesn't matter that which pin goes to which header pin, just remember that were did you
connected them. The LED is connected in series with the resistor and in paralell with the 5v
VCC.

Step 4: Powering Up
I simply connected a 5 volt power source to the test the circuit.

Step 5: Connect the Motors

Connect the
motors to the motor driver circuit. Then the digital pins to the header pins. Example if D6 is high
the motor starts spinning because the IC pulls up the output pin to HIGH. So if the selected pin is
HIGH the motor spins to the programmed direction. In my Case:

 D11---> Motor 1 Right


 D10---> Motor 1 Left
 D6---> Motor 2 Right
 D5---> Motor 2 Left

Step 6: The Code


Copy this Code in your IDE then upload as you see every pin controls a
direction of the motor.

#include <Servo.h>
Servo MyServo
void setup() {
// initialize digital pin 13 as an output.
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT)
MyServo.attach(3); //connect the servo to pin D3
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(11, HIGH);
delay(2000);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(2000);
digitalWrite(10, LOW);
digitalWrite(5, HIGH);
delay(2000);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2000);
digitalWrite(6, LOW);
MyServo.write(170);
delay(1000);
MyServo.write(0);
}

You might also like