Blog Post

Design and Implementation of Driver for 8 DC Motors

Note: The driver for the DC motor project was done during the years 2011 – 2013 when Madi was a Master’s student.

Problem Definition

The aim of this project is to design and implement a driver for 8 DC motors to be used in a surgical robot.

L298 Driver

This IC is the most common and powerful IC to drive DC motors, Relays, and Solenoids. Each IC can drive up to 2 motors. Therefore, in order to drive 8 motors, 4 of these ICs are needed. The pins of the IC are as follows:

L298 motor driver

As can be seen above, the IC is presented in two packages.

This IC has 4 outputs that are connected to the motor. As mentioned before, this IC can drive two motors. Enable A, and Enable B send the PWM signal that is needed for velocity control of the DC motor.

In this project, the I/O board generated PWM signal, however, the Microcontroller can also be used to reach this goal.

Input 1 to Input 4 pins receive 0 or 1 logic signals from the I/O board that causes the motor to rotate:

L298 IC Motor Rotation Direction

Sense A, and Sense B pins are to get feedback from the current, and in order to control the current, a resistor should be used between these pins and the ground.

Vs is the power supply for power levels that has amplifiers to provide the output current needed for the load.

Vss is the power supply for logic blocks for the IC that is equal to 5 (v). For the designed circuit, we need two supplies that it is better to use one supply and for the next one regulator should be used.

In order to filter the output, a capacitor should be used between the power supply and the ground, and based on the used motor we have chosen a 100 nF capacitor.

The figure below shows the motor and its driver:

DC motor and L298 driver

Sensor on the motor

The sensor on the motor is Hall Effect Sensor. These sensors work based on the magnetic field. They have 3 pins that the digital type gives out an output of 0, or 1 pulse when in the proximity of a magnetic field.

The motor shown in the figure above has 2 hall effect sensors that generate pulses with 90-degree phase difference and can be used to differentiate between the magnetic poles on it.

Every time that the motor rotates and the magnet is in the proximity of the sensor, a pulse is generated at the output.

When the motor is rotating and a small magnet is placed on the motor, every time that the motor is rotating and the magnet is placed in front of the sensor, the sensor generates a pulse in the output.

The range of these sensors is small and in the order of millimeters. D1 and D2 pins are sensor’s output data that are filtered before sending out to the I/O board. In order to calculate the filter values, sensor output frequency should be measured, and the Nyquist theorem should be used:

\[f = \frac{1}{2 \pi R C} \rightarrow R\times C = \frac{1}{2 \pi f}\]

Hall effect sensor

Sensor’s output test

The figure below shows the sensor’s output frequency measurement test:

hall effect sensor output test

The output voltage on the Oscilloscope for V = 12 (v) is as follows:

hall effect sensor output

As can be seen, the output of the sensor is not noisy, so the filter is not required for now.

Designed Circuit in Altium Designer

A circuit is first tested in Proteus:

motor driver proteus

and the circuit in Altium Designer:

motor driver altium designer

This circuit is to drive 2 DC motors, and 4 of these circuits should be used to drive 8 DC motors.

In the above circuit, JP6: Pulse input from I/O card

JP1 and JP2:

Altium Designer

In which M+, and M- are related to one motor’s terminals. D1 and D2 are related to the sensor output. Sensor outputs are sent to the I/O card after filtering and buffering, and Jp3 and JP4 headers are for this purpose.

JP5 header is supply input to the circuit, which is equal to 12 (v), and 5(v) is supplied by the regulator.

PCB designed in Altium Designer

PCB designed in altium designer

List of Used Components

motor driver components

(1) 32 Diodes, (2) 12 of 100nF capacitor, (3) 4 of 74HC14 buffer, (4) 4 of 7805 voltage regulator, (5) 8 of 100nF capacitor, (6) 4 of L298 motor driver

Final Designed Circuit

motor driver pcb

Interested in re-building the circuit? Download the files below:

The designed circuit in Proteus: Click HERE!

The designed circuit in Altium Designer: Click HERE!

If you enjoyed this post, please consider contributing to help us with our mission to make robotics and mechatronics available for everyone. We deeply thank you for your generous contribution!

Do not forget to contact us:

Be sure to let us know your thoughts and questions about this post, as well as the other posts on the website. You can either contact us through the β€œContact” tab on the website or email us at support[at]

Send us your work/ research on Robotics and Mechatronics to have a chance to get featured in Mecharithm’s Robotics News/ Learning.

Follow Mecharithm in the following social media too:

YouTube, and Instagram


    • Ramin, Thanks for your comment. This project was when Dr. Madi was a first-year master’s student and this was the first PCB that she’s designed. We would be more than happy to ask for your professional help in case We need PCB design in the future.

Leave a Reply

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