0

How would I go about if wanted to drive a 10V DC motor with 5V logic, suuch as the one found by an Arduino, at different rotation speeds? Is there such thing as a motor driver that accepts an analog/digital value specifying motor speed?

joaocandre
  • 978
  • 2
  • 12
  • 32
  • Might be of interest and/or a duplicate: http://electronics.stackexchange.com/q/57899/2028 – JYelton May 05 '14 at 16:22
  • There are various ways to do this with transistors, fets, etc. If you want and off the shelf component that does the tricky bits for you, look for 'high side switch' on farnell, digi-key, etc. Control speed with PWM – Will May 05 '14 at 16:33
  • @Will I am familiar with the "traditional" way using a simple bipolar juncttion transistor, are there no dowsides if motor voltage is higher than the control voltage on the gate? – joaocandre May 05 '14 at 16:42
  • I wrote an answer to essentially the same question (except it was about PWM modulating LEDs instead of motors): http://electronics.stackexchange.com/questions/98435/which-transistor-should-i-use-to-pwm-switch-my-cars-12v-power-with-my-arduinos/109001#109001 That answer also includes a suitable circuit diagram with some of the important protections (except for the clamping – Jon Watte May 05 '14 at 17:06
  • @JonWatte I've just read you answer, it was ver insightful. Two questions though: why the need for zeners, and would you need a current limiting diode in series with the LED in that case? – joaocandre May 05 '14 at 17:18
  • The Zeners are there to clamp any over-voltage seen in the system, which is a robustness feature. Better have them than not. For the LEDs, the theory is that they draw the right amount of current when supplied available voltage -- 12V LED modules are available that do this. You can also limit the average current simply by adjusting the PWM duty cycle, and not set it higher than the thing you drive (motor, LED) can take. – Jon Watte May 05 '14 at 17:26

1 Answers1

2

The simplest way that I know is for you to use an H-bridge. It will take PWM to control the speeds, which is easily output by the Arduino. The only downside is that you will need two supply lines: One for the Arduino and one for the bridge. They can run off the same supply, you would just have to use a LM316 or similar to get the voltages you need.

TI has a common h-brigde: http://www.mouser.com/ProductDetail/Texas-Instruments/SN754410NE/?qs=AMJt07B76uuZ4Fb3eRjJ6A%3D%3D&gclid=CKDTkIj-mb4CFYtDMgodyjUAJA

  • but how exactly would the PWM output modulate the voltage into the motor? – joaocandre May 07 '14 at 14:13
  • @joaocandre You have to provide additional voltage source for motor supply. – Kamil May 07 '14 at 14:56
  • H-bridge is easiest way to control motor to rotate in both directions. For one direction just one transistor will be enough. – Kamil May 07 '14 at 14:58
  • @joaocandre The h-bridge has a signal pin that is on/off. You can run your PWM from your micro-controller or other source into this pin. It will then drive the motor at a variable speed dependent on your PWM. – NorseEngineering May 07 '14 at 15:41