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 PWM signal that is needed for velocity control of DC motor.

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

Input 1 to Input 4 pins receive 0 or 1 logic signals from 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 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 100 nF capacitor.

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 are small and in the order of millimeter. 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

Figure below shows the sensor’s output frequency measurement test:

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

As can be seen the output of the sensor is not noisy so 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 if 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 sensor output. Sensor outputs are sent to 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/mechatronics/

#### If you enjoyed this post, please consider contributing to help us with the website’s running costs and keep making awesome content for you. 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.

Follow Mecharithm in the following social media too: