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:

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:

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:

## 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}$

## Sensor’s output test

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

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

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:

and the circuit in 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:

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.

## List of Used 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

You can see the other posts on Mechatronics and Robotics in the link below:

https://www.mecharithm.com/category/learning-robotics-mechatronics/

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!

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]mecharithm.com.

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:

• Ramin

Next time, I would suggest design PCB more professional. I would be happy to help you on this if you like.

• 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.