Electronic – Arduino: How to one control a 2-wire DC motor with PWM

arduinobattery-operateddc motorenergypwm

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

Best Answer

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.