I asked Todobt for some advice on using motors with Arduninos without a motor shield, his answer was great and makes a good post to share, so here it is… –
For normal motors, just about any surplus DC motor that’s rated something like “1.5VDC – 6VDC” will work. Add a transistor like a TIP120 to switch the higher current and a diode across the motor to protect against back EMF and you’re done. You can only drive the motor in one direction with that though. To do forward/reverse you need 4 transistors and at that point it’s easier to just use the standard motor driver chip. (it’s just those four transistors wired up for you in a package)
For servos, I’ve only really played with the standard $10 hobby servos. I always get the cheapest ones out there. I run the servo control signal directly to an Arduino pin, and power the servo directly from the Arduino power supply. Most servos are made to operate at around 5V, but I think there are others that will take 12V or something.
With the DC motors, I also power them off the Arduino +5V power supply. A motor with a higher voltage rating would be better powered off Arduino Vin. This is where the transistor is neat, because it switches the higher voltage to the motor using the lower voltages of the Arduino. Transistors rock.
One thing to note though is that if you’re using a ‘minimal’ Arduino like a Boarduino, its power supply caps might not be enough to filter out the motor noise and you might get some brownouts. Also, powering motors off of 9V batteries can be hit-or-miss too. I’m still experimenting with a solution for that for the Arduino class I’m teaching in November.
todbot’s blog – Link.
Post up in the comments if you have other suggestions.