Full Bridge Bidirectional Motor Controller Circuit using LM324 IC

In this article we discuss a Full bridge or H bridge based Bidirectional motor controller circuit using the 4 opamps from the IC LM324.


Generally, mechanical switches are accustomed to adjust the direction of rotation of a DC motor. Adjusting the polarity of the utilized voltage and the motor rotates the opposite direction!

On one hand this may have the drawback that a DPDT switch requires to be added to alter the polarity of the voltage, but we have deal with only a switch which makes the procedure quite easy.

However DPDT may have one serious issue, it is not recommended that you abruptly invert the voltage over a DC motor during its rotational motion. This may result in a current spike, which could possibly burn off the associated speed controller.

Furthermore, any kind of mechanical stress can also bring about similar issues. This circuit beats these complications easily. The direction and speed is manipulated with the help of a solitary potentiometer. Rotating the pot in a specified direction causes the motor to begin rotating.

Switching the pot in the opposite direction enables the motor to rotate in the reverse motion. The middle position on the pot switches OFF the motor, ensuring that the motor slows down first and then stops before an effort is made to change the direction is made .

Technical Specifications

Voltage: The circuit and motor make use of the common power supply. This implies that because the highest working voltage of the LM324 is 32VDC this likewise becomes the maximum voltage accessible to operate the motor.

Current: The IRFZ44 MOSFET is designed for 49A; the IRF4905 will be able to handle 74A. Nevertheless the PCB tracks that run from the MOSFET pins to the screw terminal block can just manage about 5A. This could be improved by soldering copper wire pieces over the PCB tracks.

In that case make sure that the MOSFETs do not become too hot - if they do then larger heatsinks will be needed to be mounted on these devices.

LM324 Pinouts


Fundamentally, you will find 3 ways to adjust the speed of DC motors:

1. By using mechanized gears to attain the ideal acceleration: This approach is often over and above the convenience of the majority of enthusiast practicing in home workshops.

2. Decreasing the motor voltage through a series resistor. This can be certainly inefficient (power will be dissipated in resistor) and also result in the reduction in torque.

The current consumed by the motor also heightens as the load on the motor increases. Increased current means a more voltage drop over the series resistor and hence a dropped voltage for the motor.

The motor then makes an effort pull even higher amount of current, causing the motor to stall.

3. By applying the entire supply voltage to the motor in short pulses: This method gets rid of the series dropping effect. This is referred to as pulse width modulation (PWM) and is the strategy found in this circuit. Quick pulses allows the motor to operate slowly; extended pulses allow the motor run more rapidly.

HOW IT FUNCTIONS (refer to schematic)

The circuit could be divided in four stages:

1. Motor control – IC1:A
2. Triangle wave generator – IC1:B
3. Voltage comparators – IC1:C and D
4. Motor drive – Q3-6

Let us get started with the motor driver stage, centered around MOSFETs Q3-6. Only a couple of these MOSFETs remain in the activated state at any instant of time. While Q3 and Q6 are ON current moves through the motor and causes it to rotate in a single direction.

As soon as Q4 and Q5 are in operating condition the current circulation is reversed and the motor starts rotating in the opposite direction. IC1:C and IC1:D deal with which MOSFETs are switched on.

Opamps IC1:C and IC1:D are wired as voltage comparators. The reference voltage for these opamps are produced by the resistor voltage divider of R6, R7 and R8.

Observe that the reference voltage for IC1:D is attached tothe ‘+’ input but for IC1:C it is coupled to the ‘-‘ input.

This means  IC1:D is activated with a voltage higher than its reference whereas IC1:C is prompted with a voltage lower than its reference. Opamp IC1:B is configured as a triangle wave generator and supplies the activation signal to  the relevant voltage comparators.

The frequency is roughly the inverse of the time constant of R5 and C1 – 270Hz for the values employed.

Decreasing R5 or C1 increases the frequency; increasing either of these is going to reduce the frequency.The peak-to-peak output level of the triangle wave is much less than the difference between the two voltage references.

It is therefore extremely hard for both comparators to be activated at the same time. Or else all 4 MOSFETs would begin conducting, leading to a short circuit and ruining all of them.

The triangle waveform is structured around a DC offset voltage. Increasing or decreasing the offset voltage varies the pulse position of the triangle wave appropriately.

Switching the triangle wave upward enables comparator IC1:D to activate; decreasing it results in comparator IC1:C to activate. When the voltage level of the triangle wave is in the middle of the two voltage references then none of the comparators are induced.The DC offset voltage is regulated by the potentiometer P1 via IC1:A, that is designed as a voltage follower.

This gives a low output impedance voltage source,allowing the DC offset voltage to be less vulnerable to the loading impact of IC1:B.

As the ‘pot’ is switched the DC offset voltage begins varying, either up or down based on the direction the pot is flipped.Diode D3 presents reverse polarity safeguard for the controller.

Resistor R15 and capacitor C2 are a simple low pass filter. This is meant to clean any voltage spikes brought on by the MOSFETs as they turn ON supply power to the motor.

Parts List

Similar Circuit Ideas

Treadmill Motor Speed Controller Circuit In this post we discuss a simple, accurate, high torque treadmill motor speed controller circuit which may be effectively installed in similar units f...
BLDC Ceiling Fan Circuit for Power Saving Within the next few years we may find all conventional capacitor-start type of ceiling fans getting replaced with BLDC ceiling fan circuits, since the...
DC Motor Protector Circuit – Voltage and Hea... In this post we discuss a DC motor protector circuit from harmful over voltage and under voltage situations. DC motor failures are commonly experie...
Greenhouse Motorized Water Diverter and Humidity C... In one of the previous posts we learned the making of a greenhouse temperature controller circuit, here we study how the effects may be enhanced throu...
RPM Controller Circuit for Diesel Generators The post discusses a diesel generator RPM controller circuit for boats using PWM technique and also using a simple triac shunt circuit. The idea was r...

4 thoughts on “Full Bridge Bidirectional Motor Controller Circuit using LM324 IC”

  1. ok just ignor the acuracy . i need to just move a my 3kg blade by motor with aprox 6000rpm with higest torque . i am lil confuse of using moters.plese help me .and also for driver.
    also suggest me 2 moter to drive a 50kg robot with speed.

    • understood, but still since 50 amp is huge a BLDC will work more efficiently, and will be very compact. Induction motors can be heavy huge and not so efficient.

  2. swag.i want h bridge circuit whixh is capable of 50 amp with 12v to 36v with highly accurate and highly robust. i want this circuit for my robo war . and i also need your suggestion about wepon motor for robo war which i must buy . i want highest rpm with hightest torque. please suggest.

Leave a Comment