I have a small DC motor which draws ~50mA @ 9 volts unloaded. I won't be putting a large load on it either, and I don't think that matters anyway, since either of these solutions appears to me to have plenty of headroom.
All I need to do is periodically turn it one way or the other.
In looking at H-bridge solutions, I've come up with 2 possibilities which seem to be good for what I need. 1 is overkill, and doesn't come in a DIP package, but has all the bits, including protection diodes. The other will need diodes, but otherwise appears complete. (Both need pull-ups and decoupling caps.)
The DRV8801 is a better choice (it's the one we use on our Rugged Motor Driver. The MAX4427 is a MOSFET driver, not a motor driver, which means it's not intended for sustained "high current" loads, just the instantaneous peak loads of driving MOSFET gates. Furthermore, the MAX4427 output resistance can be as high as 12 ohms at only 10mA, while the DRV8801 is less than 1 ohm, meaning you will lose a lot less power.
50mA unloaded means it could go quite a bit higher with load -- I don't think the MAX4427 is giving you all that much headroom. But, since it's a DIP package and is relatively inexpensive, it might just be worth trying out. If it smokes, time to move up!
Note that the TC4427 is essentially equivalent and quite a bit cheaper.
--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons
Followup question. Since I can't find a simple quad N/P h-bridge in a DIP that doesn't either have too low a current rating, or isn't way more complex than I need, any reason not to build my own h-bridge using:
Oh, I just picked those rather quickly, I think maybe I need Vgs max a bit higher, for switching them using an Arduino pin, with 9V running the motor.ETA: Upon further reading, I'm pretty sure I'm misunderstanding the max Vgs(th) spec.
(Yes, I know there's at least 1 thread here talking about the pitfalls of building your own, and I've looked for it. Can't find it.)
Major pitfall: Preventing shoot-through. MOSFETs don't immediately switch off, so providing enough current to turn one device off before you turn the next device on is important. This requires two pins per half, rather than just one, to get the timing right, so you need four pins on your Arduino per controlled motor. For a 50 mA motor, you can use two N-channel MOSFETS like the BS170, and two P-channel MOSFETs like the BS250. To turn on/off the P-channel ones, you can use another N-channel to ground out the gate (turn on,) and use a pull-up resistor of about 200 Ohms to turn it off. This may not work as well for high-current devices, but that's not what you're dealing with here.
I would highly recommend a pre-built motor shield if you just want something running. The Rugged motor shield looks like a fine, domestic (assuming you're in the US mail choice. http:// http://ruggedcircuits.com/html/rugged_motor_driver.html
If you can wait for snail mail from China, you can get away under $20 including shipping: http://iteadstudio.com/store/index.php?main_page=product_info&cPath=23_25&products_id=38 -- this driver is similar to the original Arduino Motor Shield, which sells for $40 at Radio Shack, based on the LM298, except it's not a shield; it's wire hook-up.
If you're rolling your own, LM298 is available in through-hole, which is usually simpler to solder than surface mount, unless you're set up for reflow/paste soldering already.
I've read about the shoot-through problem. I assume the dedicated h-bridge driver chips take care of that. I still need to do some reading, but yeah, I'm in something of a hurry to at least get all the parts together, and this is the last bit. I won't have a problem dedicating pins, since even a Uno is more than I need for this. I'd see if I could get it on a Tiny, if I had one of those around. I'm hoping to build the whole thing on a proto shield, or maybe even try my hand at making a PCB.
Thanks for the suggestions.
ETA: Just so I don't have to re-order, I'm going to pick up a couple FAN7382N driver ICs.