DIY Arduino Motor Driver Shield


In this DIY session, we make an Arduino Motor Driver Shield to drive DC motors, stepper motor and Servo Motor. Compatible with Arduino UNO and Arduino Mega, this motor driver shield can operate 4 DC motors or 1 stepper motor and 2 servo motors at a time. Here two L293D Motor Driver ICs are used for driving motors and an 8-bit shift register for controlling them.

Components Required

  1. Motor Driver IC L293D -2
  2. 74HC595 Shift Resistor -1
  3. 104 capacitors -5
  4. 3 Pin Terminal Block -5
  5. Push button -1
  6. SMD LED -1
  7. 1k – resistor -1
  8. PCB (ordered from JLCPCB) -1
  9. Resistor network 10k -1
  10. Burg sticks male
  11. Arduino Uno
  12. Power supply

Arduino Motor Driver Shield Circuit

This Arduino motor driver shield can be used to build DC or stepper motor based projects like a Robotic Arm, Line Follower, land robbers, maze followers and many more projects. This board can be controlled by using Arduino like Arduino UNO, Arduino Mega and similar boards. It has screw terminal for conncecting motors wires. L293D motor driver is signaled by using a shift register 74HC595 and the shift register is signaled by using the Arduino. It has jumper pins to select either 12v Power to Motors or 5v power to motors.

Pin Mapping:



  1. ST, DS, OE, SH, and MR is used for driving S hift Register
  2. M1PWM, M2PWM, M3PWM, and M4PWM are used for controlling DC motor speed. If DC motor speed controlling is not necessary make these pins HIGH.
  3. SERVO1 and SERVO2 for Servo Motors.

With this shield, making motor based projects are super easy with Arduino. You just have to fix the shield over Arduino and control motors using this shield. You can use the given code (in the end) or use your own code for controlling the motors according to your application.


Circuit and PCB Design using EasyEDA

To design this Arduino Motor Driver Shield, we have chosen the online EDA tool called EasyEDA. I have previously used EasyEDA many times and found it a great online tool to use since it has a large collection of footprints and it is open-source. After designing the PCB we can order the PCB samples by their low cost PCB fabrication services. Moreover, they also offer component sourcing service where they have a large stock of electronic components and users can order the required components along with the PCB boards.

While designing your circuits and PCBs with EasyEDA, you can make your circuit and PCB designs public so that other users can copy or edit them and can take benefit from your work, we have made the Circuit and PCB layout public for this project, available at the below link:

You can view any Layer (Top, Bottom, Topsilk, bottomsilk etc) of the PCB by selecting the layer form the ‘Layers’ Window. You can also view the PCB, how it will look after fabrication using the Photo View button in EasyEDA:


Calculating and Ordering Samples online

After completing the design of this Arduino Motor Shield, you can order the PCB through To order the PCB from JLCPCB, you need Gerber File. To download Gerber files of your PCB just click the Fabrication Output button in EasyEDA editor page, then download from the EasyEDA PCB order page.

Now go to and click on Quote Now or Buy Now button, then you can select the number of PCBs you want to order, how many copper layers you need, the PCB thickness, copper weight, and even the PCB color, like the snapshot shown below:



After you have selected all of the options, click “Save to Cart” and then you will be taken to the page where you can upload your Gerber File which we have downloaded from EasyEDA. Upload your Gerber file and click “Save to Cart”. And finally click on Checkout Securely to complete your order, then you will get your PCBs a few days later. They are fabricating the PCB at very low rate which is $2. Their build time is also very less which is 48 hours with DHL delivery of 3-5 days, basically you will get your PCBs within a week of ordering.


After ordering the PCB, you can check the Production Progress of your PCB with date and time. You check it by going on Account page and click on “Production Progress” link under the PCB like, shown in below image.



After few days of ordering PCB’s I got the PCB samples in nice packaging as shown in below pictures.



After getting these pieces I have mounted all the required components over the PCB connected it with Arduino for demonstration.



So our Arduino Motor Driver Shield is ready, and you can directly use it with Arduino to control many motors at a time.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top