Driving 3v Motors

I have two 3v gear motors from Solarbotics (GM2s). I'm looking everywhere, but I can't seem to find an IC to drive these motors. Someone recommended using transistors and an h-bridge, but I can't seem to understand how that would work. I know these can run higher, but I want to use 3v because I'm using a 2000 mah Li-Poly cell. Any help is appreciated.

Thanks, Xz

Something like Lady Ada's motor shield would work, but you'd need a 6V or so power supply, because the H-bridge chip wastes about 2.5-3V.

To use a single-cell LiPo, you'd need to go with some other driver, based on MOSFETs to reduce the wasted voltage. I don't have any personal experience to base recommendations on, but I can't recall seeing any complaints about the ones offered by Pololu.

So, if I understood that correctly, I can safely use an L293D with a 6v supply from a LiPo boost circuit at 100-200 mah per motor (they stall at .4A), and still get an output of 3v? And if I need to, I can PWM the channel enable pin to lower the voltage a bit, right?

Thanks, Xz

I read on wikipedia that it's best to use four n-channel MOSFETS in an h-bridge.

The most efficient MOSFET designs use N-channel MOSFETs on both the high side and low side because they typically have a third of the ON resistance of P-channel MOSFETs.

You need 3v supply going into the hbridge that can handle atleast 1 amp.
I used the Texas instruments hbridge for my laser spirograph. I supplied 5v for the motors since they were 5v motors to the supply pin and 5v to the ic pin which it runs on.

I read on wikipedia that it's best to use four n-channel MOSFETS in an h-bridge.

Most designs also use four n-channel MOSFETs because p-channel MOSFETs are hella expensive (comparatively).

The drawback of an all n-channel design is that you need a form of boost circuit on the top end (or some kind of external driver chip). I am not sure if with an external driver chip if this is an issue, but I have heard with a voltage boost circuit on the top end, you need to -always- use PWM to drive the motor, you can't lock at "top speed" to DC only, because the capacitor in the boost circuit will discharge (and I can't remember what this does to the rest of the circuit - whether it just stops working, or if there is spectacular failure, or what). It could be that the driver chip always uses PWM or something.

More information on h-bridges, in a nice tutorial, can be found here (BJT only, though - but the information is good):



[edit]Here's another interesting tutorial on MOSFET-based h-bridges:


Thanks for posting. Now I understand, it wouldn't be possible to use 4 N-channel. Better to use 2 P-channel for the high side. and 2 N-channel for the low side.

Then again, why go through all the trouble and just use one l293d to control both motors :)

Well, I looked around and I figured out that directional pins and enable pins on the L293D can be PWMed. So, one final question. Would PWMing the enable pins or the directional pins be better to lower a 6v motor supply to a 3v output? All your responses have been really helpful so far.

Thanks, Xz

Now I understand, it wouldn't be possible to use 4 N-channel.

No, you can use an all n-channel drive - you just need that charge pump circuit thing on the high side (or some other method to raise the voltage); as I said before, there exist special driver chips for all n-channel MOSFET h-bridges designed for this purpose.

Then again, why go through all the trouble and just use one l293d to control both motors.

For the small motors we are talking about, it doesn't make sense to build a MOSFET h-bridge; using an h-bridge IC like the L293 is a better and easier (and likely cheaper) option.


An L298N H-bridge chip might be another option. Below is a bootstrap setup for a high side N MOSFET. It does require a pulsed input to keep it turned on. I have not experimented with this particular setup.

Youre motor supply has to be 3v atleast 1 amp. If you need to lower it, from 6v to 3v use a voltage regulator. Remember the more you regulate the hotter the regular will get (use a heatsink if hot to touch). A switchable power supply for it be easy but some can cost alot. I use a 3v 6v 9v 12v switchable supply rated for 2 amps. What you might consider is adding caps to take out noise (which I didn't do since it's inclosed). I'm controlling 3 motors at 5v. What I did is I took 9v supply source fed to arduino 5v with a lm7805 and fed the motor supply with an lm7805. No matter what make sure all your grounds share the same ground. The hbridge I used is great and in fact I have an extra left if you need it pm me. Edit: are you making this mobile? If so a 3v battery pack would work.