I don't have much knowledge of electronics, so my question might be vague. Please point out my mistakes in as simple terms as possible.

I am working on a project in which I have to control multiple DC motors with an Arduino Uno. All motors are identical and required to rotate at about the same speed. I used Tinkercad to make some simulations and it works, but I doubt whether it will work correctly.

The isolated circuit schematic of the motor control I used:

Obtained from tinker cad

In the above schematic U2 is a 5 V regulator (LM7805) and the power supply is 12 V, 1.7 A.

Note: I am using the Arduino to control other components besides these motors, so the number of pins left to use for this is low.

I just want to know whether this way of using the PWM to control all motors is correct or wrong. If wrong, how to fix it? And is it OK to use a single voltage regulator for all motors?

  • 1
    \$\begingroup\$ You should have commutating diodes on the motors, or use a push-pull driver. \$\endgroup\$
    – PStechPaul
    Dec 24, 2022 at 17:36
  • 1
    \$\begingroup\$ (DC motors not all, but some bets concerning speed are off if these were electronically commutated.) about the same speed should result from common supply where load is about same. \$\endgroup\$
    – greybeard
    Dec 24, 2022 at 17:42
  • \$\begingroup\$ All four motors are user to reel back a single load at the same time, so they will have same amount of load acting on them. \$\endgroup\$
    – JBK2
    Dec 25, 2022 at 15:52

2 Answers 2


I just want to know whether this way of using the PWM to control all motor is correct or wrong. IF wrong, how to fix it.

  • An emitter follower driving 4 motors is likely to be quite problematic and inefficient.
  • Instead use a common-emitter configuration to drive the motor
  • Better still use a decent logic-level MOSFET in a common-source configuration

And is it okay to use a single voltage regulator for all motor.

  • If your motors are 5 volt rated then there will be a helluva lot of heat generated in the linear regulator
  • Better to use 12 volt motors directly connected to the 12 volt supply and use a common-source configuration
  • If you are using a regulator, it's needs decoupling capacitors on input and output (read the data sheet of the device)


  • Add supplies to your MCU in your circuit and add decoupling capacitors on those power supplies close to the MCU pins as instructed by the data sheet.
  • \$\begingroup\$ Thank you for the great explanation. Now I understand what I am have to do clearly. I still did not select the motor of choice, but it will be 12V for sure. I will make changes to the circuit based on the suggestions. \$\endgroup\$
    – JBK2
    Dec 25, 2022 at 15:50

Using the same transistor to control all four motors means you'll need a transistor that can handle all that current. If instead you control each motor with its own transistor, you can choose smaller (cheaper) parts that only need to handle a quarter of the total current. You can still use the same control signal to drive an arbitrary number of transistors (with some caveats, e.g. fanout, that won't be a problem here).

Here's a schematic for how I would connect this system:


simulate this circuit – Schematic created using CircuitLab

I've used low-side switching with n-channel MOSFETs so you can run the motors at a higher voltage but control them with a lower voltage (i.e. logic level). You'll need to select a MOSFET that supports logic level shifting (meaning that it has a low RDS when VGS is 5 V).

Note the use of flyback diodes connected antiparallel to each motor. This will protect your transistors from destructive voltage spikes.

The exact transistor and diode you need will be determined by the specific motor you have and the current it needs, but if it's a 12 V system with small motors, you'll probably be fine with 1N4148 diodes and BS107 MOSFETs. Since you're controlling this system with a 5 V Arduino Uno, you have a little bit more leeway in your MOSFET choice. If you're getting into higher currents you'll probably need a beefier transistor like a TIP120 (a Darlington BJT, so you'll need to set the base current with a series resistor, but otherwise the schematic will be similar).

  • 1
    \$\begingroup\$ The schematic is very helpful to understand, thank you for the time you took for it. I need to do some research on the motor required and available to me, you suggestions narrowed most of the selections to be made. Thanks once again. \$\endgroup\$
    – JBK2
    Dec 25, 2022 at 15:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.