I have ordered a Dual H-Bridge 12A continuous (30A peak) Polulu motor driver shield for my upcoming (first time ever, a 1.2m long tank made of wood) robot project.

I was thinking about how to supply the power to all the components in the circuit without wasting much power, but the only thing I can come up with is this simple voltage divider connected in parallel to the motor drive:


Knowing the Arduino can handle max 5V I did make sure to make it a bit lower.

But my wonders go to the fact that I am suspicious that connecting the motor driver and Arduino to the same power source isn't a great idea? Or am I paranoid?

And what about power waste by the voltage divider, how can I reduce/minimize it? Make the resistors smaller? (15/10 ohm - but more error and higher current)

Is there a formula to find the most effective R1 and R2?

Do I have to worry about current spikes?

Any other things I could miss in this simple-yet-suspicious circuit?

Also, if I wanted to simulate any possible scenario, which components should I choose in the circuit to keep it as simple as possible (for simulating in Multisim 13)?

  • 1
    \$\begingroup\$ Where did you pull 10megohm from? And 5V isn't the maximum voltage. \$\endgroup\$ May 23, 2014 at 22:49
  • \$\begingroup\$ Just guess values, had to put something there for the simulation \$\endgroup\$
    – Gizmo
    May 23, 2014 at 23:27

3 Answers 3


Using a voltage divider as a power source for almost anything is a Very Bad Idea. The actual voltage supplied to the load will vary with the load current. I expect that the current drawn by an Arduino will be Much, Much Greater than is drawn by your 10 meg resistor, so the voltage will be much less than you expect.

You should use a DC-DC converter (AKA switching regulator) to drop the 12 volts down to 5 for the logic. A linear regulator such as the LM7805 could also be used, if the 5 volt current demand is low, but a linear regulator will waste the excess power as heat.

  • 1
    \$\begingroup\$ Regulator is a good recommendation. Make sure it is decoupled both on input and output (especially to prevent noise from motor from ending up on the Arduino) - usually a 100 nF ceramic capacitor will do wonders. \$\endgroup\$
    – Floris
    May 24, 2014 at 4:57

The standard arduino boards ( ng, uno, duo, micro ) have a built-in regulator to which you can connect the 12V. Although a linear regulator is not efficient, it's unlikely to be significant compared to the power taken for the motors in your tank.

A 1.2m tank could be quite heavy. I hope the fish enjoy it.


There are two excellent answers here that explain what you should do instead of use a voltage divider, but no answer explaining why, exactly, the voltage divider doesn't work. After all, you (and countless others) have been taught about voltage dividers, and given the schematic:


simulate this circuit – Schematic created using CircuitLab

and the equation:

$$V_{out} = V_{in}\left(\frac{R_2}{R_1+R_2}\right)$$

and sent on your way.

And when you go to actually divide a voltage and use it in your circuit? Well, the divide works fine according to your multimeter, but as soon as you use it everything just falls apart. Why?

It's the sneaky assumption hidden under the hood of the voltage divider. Because there's no "voltage divider law". But there is Kirchhoff, and there is Ohm. And their laws are laws.

Using Kirchhoff's Current Law at the node between \$R_1\$ and \$R_2\$:

$$ i_{1} = i_{2} $$

and substituting in Ohm's Law:

$$\begin{align*} \frac{V_{in} - V_{out}}{R_1} &= \frac{V_{out}}{R_2} \\ (V_{in}-V_{out}) \cdot R_2 &= V_{out}\cdot R_1 \\ R_2 \cdot V_{in} - R_2 \cdot V_{out} &= R_1 \cdot V_{out} \\ V_{out} \cdot (R_1 + R_2) &= V_{in} \cdot R_2 \\ V_{out} &= V_{in}\left(\frac{R_2}{R_1+R_2}\right) \\ \end{align*}$$

Rip off the voltage divider's mask, and it was KCL hiding under there the whole time.

And, of course, it's only true if \$i_1 = i_2\$. As soon as you add in an extra current drawing out of that same node...


simulate this circuit

well, for reasons that should now be obvious, the whole thing falls apart.

So then what are voltage dividers actually good for, if you can't connect them into a real circuit? They might not be particularly useful when you're drawing significant current from the node, but what about a device that draws negligible current? Something with a very high input impedance, and a very low output impedance? What basic circuit element meets that requirement?


simulate this circuit

An op amp, of course. Your op amp and your voltage reference just built the most basic linear regulator. In general, this op amp configuration is called a unity gain buffer and is useful for transferring a voltage reference from a high impedance source to a low impedance sink. It's not just for power (it's not even particularly good at power and loses a lot to heat) but it's really useful in analog signals, particularly when your sink (ADC, amplifier, etc.) has an input impedance low enough to affect the signal coming out of your transducer.

For real-world circuits, of course, your standard 78xx will incorporate a (more-accurate) reference and a feedback amplifier in a single easy-to-use package. Inside that package, though, is a circuit not very different from the one shown above.

  • 3
    \$\begingroup\$ While I like your answer in general, it goes far beyond the scope of the question. The last part mentioning OP-Amps will be down right confusing for a newcomer asking about powering an Arduino, particularly in your example, where you used an opamp that in reality can deliver max +-26 mA. \$\endgroup\$ Jan 27, 2023 at 8:07
  • \$\begingroup\$ @PatrickFielder This question gets linked from other "why can't I draw a power supply from a voltage divider" questions -- and op amps are a basic building block taught in Circuits I. Not sure why you think it's "downright confusing." I'll edit the post to remove the part number though -- that was just added in by the schematic editor tool and I didn't notice it before I posted. \$\endgroup\$
    – Matt S
    Jan 27, 2023 at 14:32

Your Answer

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

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