• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Motor Controller / 2 Simple Bidirectional Motor Controller Circuits Explored

2 Simple Bidirectional Motor Controller Circuits Explored

Last Updated on January 19, 2025 by Swagatam 22 Comments

A circuit which allows a connected motor to operate in clockwise and anticlockwise directions through alternate input triggers is called a bidirectional controller circuit.

Table of Contents
  • Introduction
  • Technical Specifications
  • LM324 Pinouts
  • BIDIRECTIONAL CONTROL OF DC MOTORS USING LM324
  • Parts List

The first design below discusses a Full bridge or H bridge based Bidirectional motor controller circuit using the 4 opamps from the IC LM324. In the second article I have explained about a high torque bidirectional motor controller circuit using IC 556

Introduction

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

IC LM324  internal diagram

BIDIRECTIONAL CONTROL OF DC MOTORS USING LM324

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.

Bidirectional Motor Controller Circuit diagram using IC LM324

HOW IT FUNCTIONS (refer to schematic)

The circuit could be divided in four stages:

1. Motor control – IC1A
2. Triangle wave generator – IC1B
3. Voltage comparators – IC1C 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. IC1C and IC1D deal with which MOSFETs are switched on.

Opamps IC1C and IC1D 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 IC1D is attached tothe ‘+’ input but for IC1C it is coupled to the ‘-‘ input.

This means  IC1D is activated with a voltage higher than its reference whereas IC1C is prompted with a voltage lower than its reference. Opamp IC1B 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 IC1D to activate; decreasing it results in comparator IC1C 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 IC1B.

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

Bidirectional Motor Controller Circuit Parts List BOM

Prototype Images

Built Prototype for the Bidirectional Motor Controller Project
working model for the Bidirectional Motor Controller Circuit
Bidirectional Motor Controller Circuit oscilloscope waveform

You'll also like:

  • 1.  Adjustable Drill Machine Speed Controller Circuit
  • 2.  GSM Pump Motor Controller Circuit using Arduino
  • 3.  Stepper Motor Driver Circuit using IC 555
  • 4.  Motorized Sun Shade Circuit
  • 5.  High Current Sensorless BLDC Motor Controller using Back EMF
  • 6.  High Voltage DC Motor Speed Regulator Circuit

About Swagatam

I am an electronics engineer with over 15 years of hands-on experience. I am passionate about inventing, designing electronic circuits and PCBs, and helping hobbyists bring their projects to life. That is why I founded homemade-circuits.com, a website where I share innovative circuit ideas and tutorials. Have a circuit related question? Leave a comment.... I guarantee a reply!

Previous Post: « Learning Basics of Semiconductors
Next Post: How to Connect Transistors (BJT) and MOSFET with Arduino »

Reader Interactions

Comments

  1. Bernard Peek says

    July 20, 2023 at 1:25 am

    Thanks for this. My application is very different, controlling a bi-colour LED. This design has given me a way to do it.

    Reply
  2. Michael Miller says

    May 17, 2023 at 7:07 pm

    I have an application where I would like to control a trolling motor with this type of circuit. The motors are driven by a 12v DC battery and the working Amps are 42 amps. It sounds like with some modification to the PCB this circuit you designed would work. What are your thoughts on what would need to change? Do you have a PCB file for this circuit?

    Reply
    • Swagatam says

      May 18, 2023 at 8:59 am

      I think it could be used for mentioned application. Sorry, I do not have the PCB design for this circuit.
      There’s another circuit design which could be used for your purpose, you can check out the link below. The circuit can be found under the heading: Design#3: DC Motor Controller with Multiple Features
      https://www.homemade-circuits.com/dc-motor-speed-controller-circuits/
      For 42 amps the mosfets and the relay will need to upgraded accordingly.

      Reply
  3. Lameck says

    October 12, 2022 at 8:52 pm

    Awesome thanks. For much support the curcuit works pretty good

    Reply
    • Swagatam says

      October 13, 2022 at 9:10 am

      My pleasure!

      Reply
  4. Emmanuel Offiong says

    December 27, 2020 at 3:45 am

    Please sir I want to used one of this circuit to control car kit BLDC motor, will it work?

    Reply
    • Swagatam says

      December 27, 2020 at 11:20 am

      BLDC are 3 phase motors, the above circuits are for brushed motors, not for BLDC

      Reply
  5. Lins Roberto Pereira, says

    September 25, 2020 at 8:19 am

    Como vai? gostaria, de mover um motor de aproximadamente de12v AC, com esse circuito seria possivel? obrigado.

    Reply
    • Swagatam says

      September 25, 2020 at 1:47 pm

      Hi, Sorry AC motor cannot be controlled using the above concepts.

      Reply
  6. Jim Ransom says

    April 5, 2020 at 11:36 pm

    I’ve been working on a bidirectional dc motor circuit design to actuate a tiny dc worm drive motor that will operate the rudder on a multi engine radio control airplane design of mine. My idea has been to attach a vane to a potentiometer to sense airflow and from that signal, control my worm drive motor to position the aircraft rudder to control aircraft yaw when one engine is off. Your LM 324 circuit is definitely a step ahead of what I have envisioned. I had never considered pulse width modulation. I think that may solve my previous stumbling block of designing about a 1 or 2 degree dead zone on the yaw sense vane so the yaw actuator does not oscillate back and forth when the yaw is at the desired angle. (Usually 0 degrees). A 0 degree yaw provides the lowest drag and therefore the best one engine operation climb performance. I had also considered adding a pot controlled by a rudder servo that would likely somehow replace the R6, R7 and R8 resistor circuit so that I could control yaw angles and have more control of the airplane.

    Could you provide ideas of resistance values for R1,R2 and P1 that would make the yaw sensor rather sensitive and a suggestion for the servo controlled yaw control?

    The other addition that I don’t think would be to hard to design are limit switches for the rudder actuator motor and an airspeed switch to disable rudder positioning until the aircraft is up to flying speed.

    An additional idea I’ve been considering is using two micro pressure sensors that would compare static pressure on the left and right side of a small vertical airfoil. The idea being that if the aircraft is not yawing the pressures would be equal but would differentiate in proportion to the aircraft yaw angle.. This would decrease the amount of moving parts (Reliability) and eliminate the need for an airspeed switch mentioned previously.

    Thank You

    Jim

    Reply
    • Swagatam says

      April 6, 2020 at 12:02 pm

      I appreciate your ideas and sincerely hope they will work, but since I have no expertise in the aviation field or relevant mechanical operations, interpreting the system may not be possible for me.
      However, as far as the first circuit is concerned, the adjustment of P1 will allow an equivalent amount of pulse width supply for the motor, meaning if the P1 is moved more towards the ground line, the motor will get reduced equivalent pulse width voltage and therefore will rotate slower, when P1 is moved towards the positive line, the pulse width will be wider causing the motor to rotate with higher equivalent speed.
      In order to get a wider range you can simply remove R1 R2, which will allow the load to be operated from 0 to 100% power across the applied voltage range, depending on the P1 position.

      Reply
    • Slavva says

      October 13, 2021 at 5:40 pm

      for Mr. Jim Ransom.
      Hello.ALL auto-pilot’s for a ‘yaw-control-line’ are based on vertical-supervisors (VS)!!!!! Simplest VS is a jointed to a potentiometer arm with a weight as a simplest kind of 3-pendulum’s VS. 1-st potentiometer’s pendulum’s arm is rotated = nose-aft. 2-nd= left-right wings. Both 1st and 2nd are vertical plane’s. 3-rd is for = horizontal rotation plane. All 3 planes potentiometer’s signals given to a analog/digital system (ADS) for calculating of a necessary rudder’s deflection angle. Than by a feedback potentiometers from rudder’s actuators the ADS can predict necessary deflection angle for a auto-pilot’s neegs = anti-turbulence function via very elaborated computations.
      For you same – for a simplify – from the left-right potentiometer = P1 (100K of 1-st circuit) – direct to other elements of the 1st circuit but shell be a ‘zero-power to motor’ at +/- few degrees of angle of the potentiometer – against vibrations and a small oscillation influences.

      Reply
  7. Hejazi says

    December 2, 2019 at 10:23 pm

    Hi Swag,
    Could you design a circuit for an electromagnetic bearing(Active magnetic Bearing) that can support large shaft with more than 500,000 RPM.

    Reply
    • Swagatam says

      December 3, 2019 at 11:50 am

      Sorry Hejazi, I have no idea about this circuit.

      Reply
  8. Paul Borowick says

    November 10, 2019 at 2:44 pm

    Swag,
    I am looking for a circuit design for a motor control for a 110v outlet. The power is activated by a microswitch.
    This would be for a 2 hp motor dust collector.
    Here is a link for a similar system, this one is for 220v.

    They used to make a 110v one but discontinued it and that is what I need. I could buy a wireless/remote control one but I like to have the hardwired control.
    Is this something you can help me with?
    Thank you.

    Reply
    • Swagatam says

      November 11, 2019 at 2:12 pm

      Hi Paul,

      I would recommend the 4) circuit from this article:

      https://www.homemade-circuits.com/build-these-simple-flip-flop-circuits/

      Just make sure the triac is a 30 amp 600 V rated

      I am assuming that the input supply is from a 110V AC outlet

      Reply
  9. uchi says

    October 19, 2019 at 3:40 am

    Halo swagatam, i want to make a mini wiper from dvd motor which running on lithium battery. can you give me a schematic diagram for it (if possible use transistor only)? Thank you and sorry for my english 🙂

    Reply
    • Swagatam says

      October 19, 2019 at 5:07 pm

      Hello Uchi, you can try this

      " rel="ugc">comment image

      Reply
  10. muhammad abubakar says

    December 23, 2018 at 8:37 pm

    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.

    Reply
    • Swagatam says

      December 24, 2018 at 8:52 am

      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.

      Reply
  11. muhammad abubakar says

    December 23, 2018 at 3:13 pm

    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.

    Reply
    • Swagatam says

      December 23, 2018 at 5:38 pm

      Hi Muhammad, if you are looking for high current and high accuracy system then you will have go for a BLDC 3 phase driver circuit, such as this one:

      https://www.homemade-circuits.com/2017/08/high-current-sensorless-bldc-motor.html

      Because 50 amp is huge a 3 phase motor will work better than a single phase system. Moreover it also includes a reverse forward facility and it works with sensorless motors.

      For the motor also you can select a 50 amp 35V BLDC, all BLDC motors will offer excellent torque at high RPM

      Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

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

Primary Sidebar

Subscribe to New Circuit Ideas

Categories

  • Arduino Projects (87)
  • Audio and Amplifier Projects (132)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (83)
  • Datasheets and Components (104)
  • Electronics Theory (143)
  • Free Energy (37)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (19)
  • Health related Projects (25)
  • Home Electrical Circuits (12)
  • Indicator Circuits (14)
  • Inverter Circuits (87)
  • Lamps and Lights (142)
  • Meters and Testers (69)
  • Mini Projects (46)
  • Motor Controller (64)
  • Oscillator Circuits (27)
  • Pets and Pests (15)
  • Power Supply Circuits (108)
  • Remote Control Circuits (50)
  • Security and Alarm (64)
  • Sensors and Detectors (101)
  • Solar Controller Circuits (59)
  • Temperature Controllers (42)
  • Timer and Delay Relay (49)
  • Transmitter Circuits (29)
  • Voltage Control and Protection (37)
  • Water Controller (36)

Calculators

  • Battery Back up Time Calculator
  • Capacitance Reactance Calculator
  • IC 555 Astable Calculator
  • IC 555 Monostable Calculator
  • Inductance Calculator
  • LC Resonance Calculator
  • LM317, LM338, LM396 Calculator
  • Ohm’s Law Calculator
  • Phase Angle Phase Shift Calculator
  • Power Factor (PF) Calculator
  • Reactance Calculator
  • Transistor Astable Calculator
  • Transistor base Resistor Calculator
  • Voltage Divider Calculator
  • Wire Current Calculator
  • Zener Diode Calculator
  • Filter Capacitor Calculator
  • Buck Converter Calculator
  • Boost Converter Calculator
  • Solar Panel, Inverter, Battery Calculator
  • Wire Current Calculator
  • SMPS Transformer Calculator
  • IC SG3525, SG3524 Calculator
  • Inverter LC Filter Calculator

People Also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Recent Comments

  • Swagatam on Best 3 MPPT Solar Charge Controller Circuits for Efficient Battery Charging
  • Dan on Best 3 MPPT Solar Charge Controller Circuits for Efficient Battery Charging
  • Swagatam on How Shunt Regulator TL431 Works, Datasheet, Application
  • SA on How Shunt Regulator TL431 Works, Datasheet, Application
  • Swagatam on Battery Deep Discharge Protection Circuit

Company

  • Privacy Policy
  • Cookie Policy
  • About Me
  • Contact
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Quora
  • Stack Exchange
  • Linkedin
  • © 2025 · Swagatam Innovations