I am student who is trying to get four 28BYJ-48 stepper motors to turn for a split flap display hobby project. Here is the schematic:


simulate this circuit – Schematic created using CircuitLab

I have gotten up to two motors working at the same time however when three were attempted the motors seemed to fail. I believe that the issue is that I don't have the right number of amperes either being supplied to the motors themselves or maybe in the Arduino. I hoping to get an answer as to where my power problem is and a suggestion for the solution.

Many thanks -KWC

  • \$\begingroup\$ I would power the Arduino up with it's USB cable. at least you know the Arduino won't shut down due to low power caused by motors. you can then use a resistor divider and monitor the supply voltage of motors with Arduino's ADC and serial plotter/monitor and find out if the power fails. \$\endgroup\$ Dec 27, 2021 at 21:33
  • \$\begingroup\$ @TirdadSadriNejad I can see the lights on the Arduino staying on so I know that's not shutting down. I don't really know what a resistor divider is but I can tell you I don't own one so unfortunately that is not an option for me either :( \$\endgroup\$ Dec 27, 2021 at 21:55
  • \$\begingroup\$ According to the oracle that is the interwebs, your stepper motors are 5V and draw around 240mA. So you’ll need 5V at 1A minimum. The Arduino’s regulator might get a bit warm running from 12V, so running it from usb would be advisable. \$\endgroup\$
    – Kartman
    Dec 27, 2021 at 21:57
  • \$\begingroup\$ How are the motors failing? \$\endgroup\$
    – vir
    Dec 27, 2021 at 21:59
  • \$\begingroup\$ @Kartman there are 12V variants for that exact model number. I think he/she is using the 12V variants. \$\endgroup\$ Dec 27, 2021 at 22:05

2 Answers 2


Current for 28BYJ-48

Make sure you understand which model of the stepper motor you have.

Most common in the hobby market is the 28BYJ-48-5 which is only a 5V stepper motor. It draws about 100mA per phase. ....if you have the 12V stepper then your schematic should be correct, but if you have 5V units then you will draw too much current.

If you connect up a 28BYJ-48-5 to 12V then you potentially may draw 500mA or above per phase. Depending on the capacity of the wires you use the voltage supplied may drop, but you could easily be over the rated current of your supply.

Datasheet for 5V unit.

The 5V units have a 50 Ohm coil resistance per phase.

The 12V units have a 200 Ohm coil resistance per phase.

  • 1
    \$\begingroup\$ Yes these motors are 12V which means you suggest that the 4 motors could draw about 2A's per phase which should be in my 3A supplies range, so is it the wires that are bad? \$\endgroup\$ Dec 27, 2021 at 22:16
  • 1
    \$\begingroup\$ No ...a 12V motor should draw about 60mA per phase so a maximum of 480mA for all four motors. \$\endgroup\$ Dec 27, 2021 at 22:40
  • 1
    \$\begingroup\$ Okay so than what would the problem be? \$\endgroup\$ Dec 28, 2021 at 2:11
  • \$\begingroup\$ Measure the coil winding resistance. You may have 5V steppers and not 12V. \$\endgroup\$ Jan 4 at 16:19

First general improvement. I imagine the ULN2003A is on your own board. Change the ancient ULN2003A for a modern FET array IC (with clamping diodes) with practically no voltage drop (<50 mV) when on, rather than about 0.8 V. That delivers slightly more power (8% or so) to your steppers for little effort and cost. It allows your software to use slightly narrower coil drive pulses to achieve the same work. More importantly, it gets you away from the ULN2003A, which has been well superseded in the last 35 years, and designing with today's circuitry.

Second general improvement. You don't show any bulk decoupling capacitance close to your ULN2003 IC, before the cable/wires to the motor. Add a 470 uF 16 V electrolytic and a 100 nF ceramic in parallel with the stepper motor 12 V supply and GND. Without that, the PSU is trying to react to changes in the motor current draw from the other end of the PSU wires and their inductance. The bulk decoupling capacitor acts like a short-lived rechargeable battery, topping up when the motor current is low and supplying it when the motor current demand steps up. The small capacitor does the same job but (for want of a simpler word) faster and in response to other frequencies.

Next, when stepping your motors, make sure you (a) disable the coil drive once the motor has stepped and (b) sequence stepping so that only one motor is energised. Leave a short 'all off' interval between pulses before energising the next motor's coil.

Depending on your application, you may be able to run all motors simultaneously while keeping the peak current drawn at any instant below your PSU's maximum. The actual maximum may be less than the rated maximum, depending on the quality of the PSU and manufacturer.

  • 1
    \$\begingroup\$ I appreciate the response tony. I'm using the ULN2003's because they came with the motor, but also I am using the Accelstepper library for Arduino so I'm not controlling the coils myself but I can see if the sequence stepping thing is an option. Do think all the motors going at once could really exceed 3A at peak, the motors themselves only seem to be rated at 240mA? \$\endgroup\$ Dec 27, 2021 at 22:14
  • 1
    \$\begingroup\$ @KidWithComputer, the empirical evidence you've presented is that you can run two motors at once but not three and you suspect there's not enough PSU current. Sequencing the motor drives is a solution to that problem as described. What the wider problem is, I'm afraid I won't know unless you can put a DSO on your PSU rail at the ULN2003As and trigger it on the rail dipping to, say, 11 V. Are you able to do that? \$\endgroup\$
    – TonyM
    Dec 31, 2021 at 17:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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