I want to control the speed of a two-wire DC motor using PWM. I already managed to control a 4-wire motor, but now I need to use a two-wire motor.

I would connect it to the Arduino directly, but the pins won't provide enough mA current to control the motor properly.

Is there a good way to provide energy to the Arduino and the motor plus controlling the motor using PWM?

Specifications of my Motor:

  • Rated voltage: 1.3V

  • Rated current: 65mA max

  • Starting voltage: 0.75 V

  • Stall current: 170mA max


2 Answers 2


A switching buck regulator will just let you provide the correct voltage for the motor (many have a minimum output of 1V3). You should be able to power it off the same supply as the Arduino if enough current is available.

An H-bridge cross-connected to complementary PWM pins will allow you to control the speed and direction of the motor, with 50% duty cycle being no motion. Make sure to use a high enough PWM frequency that the motor doesn't vibrate when at the stop frequency.


use a motor shield, which have an external power socket. I have controlled 2 motors and 2 servos with one arduino board ... seems to work just fine. plus you should probably look into providing it with more amps as arduino only provides you with 40 mA

  • 1
    \$\begingroup\$ I don't want to buy a motor shield because they are very expensive. I thought it would be cheaper to build it myself. I bought some L293D H Bridges. As you already said, I have to find a way to provide more than 40 mA to the motor. \$\endgroup\$
    – Wolfen
    Oct 19, 2013 at 17:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.