Let's Make Robots!

Motors and Arduino

   Hello, is it possible to control regular small DC motors with an arduino board? If yes what limitations do I have?  can I use the PWM feature to increase decrease their speed?+

what about servos, do I need a motor driver or can I control them with just an arduino? 


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Yes it is possible to control small DC motors with the Arduino, but I would NOT connect directly. The Arduino outputs alone do not source/sink enough current. There are a number of motor shields (for example Adafruits motor shield), good H-bridge ICs (SN754410, L293 etc etc) or motor driver ICs (for example Pololu) that can be used. Current/voltage limitations depend on what motors you are wanting to drive. Yes, you can use the PWM feature to control their speed.

Servos can be driven directly by the Arduino - either via the PWM pins or by using the Servo library.

Look around here in LMR for the "Tips" section. You will probably find many more suggestions.


just out of curiosity, why would you not connect it directly?   say 2x 5.9 v motors that I got from dead DVD drives. I tested one out and it seems to work fine, I just don't want to screw anything up.

DC motors typically have very low resistance, which means that they will draw much more current from the Arduino pins than the Arduino can safely supply, so either the motor won't run properly, or the Arduino will be damaged.

thanks, I'm trying to build an h bridge out of transistors now, although I might buy one of those controler ICs



thanks!  that clarifies a lot...    BTW I connected a motor directly for a few seconds, and nothing happened, hopefully I didn't burn anything on the arduino.


 I like the H bridge link you provided, will try that.


one last novice question, do I ever need to safely remove the arduino from windows? or can I just unplug it

 just unplug it