DC motors - Forward and backwards

So, I've seen a few tutorials on DC wiring for Arduino, making it go backwards/forward (for non polar motors of course).


However, I'd rather not have an external chip powering the system. There's got to be a way to make a motor go clockwise and counterclockwise without using another chip. Can anyone tell me how to do this or lead me to a tutorial on doing this with JUST the arduino?


That all depends on what you mean by “chip”. In general, you cannot drive motors directly from your Arduino simply because it cannot output enough current. You might be able to drive the tiniest of tiny motors directly from an I/O line, but you’re basically limited to motors that require less than 40 mA at stall. If you want to drive a motor you either need to use a motor controller board (a module that handles all of the complicated signal generation and drives motors in response to simple inputs from you), a motor driver IC (a chip that drives your motors in response to low-level command signals from you), a discrete H-bridge you make yourself using MOSFETs (the Arduino turns the MOSFETs on and off, and the high current needed by the motor flows through the MOSFETs), or a system of MOSFETs and relays.

  • Ben

By chip, i meant something like the L293 H-bridge used in the tutorial I linked to above. So...basically you're saying I must use such a chip to control a DC motor thru the Arduino, correct?

BTW, here is a fantastic continuous servo tutorial using the Arduino: http://dukevisualstudies.org/lastmiles/?p=11

You can see here one example of the discreet components solution (H-Bridge), that Bens told us: http://library.solarbotics.net/circuits/driver_4varHbridge.html

So...basically you're saying I must use such a chip to control a DC motor thru the Arduino, correct?

I'm saying you need external hardware to control a DC motor with your Arduino. The reason you can control a servo directly from your Arduino is that the external motor-driving hardware is included in the servo itself (a servo is basically a motor, motor driver, and feedback system all in one).

  • Ben

Gotcha. Thanks.