Controlling Speed and Powering 12V DC Motor with Arduino and Wall Supply

arduinodc motormotor controllerpower supply

first post here. I am a mechanical engineering student, but know little about electrical engineering or electronics. I am doing a project that requires me to (affordably) control the speed of a 12V DC motor. Here is the motor.

My issue is that I am unsure of what components I need to provide power to the motor and control its speed. I would like to use a wall outlet as the power supply and an Arduino to control the speed. I'd like to figure some of this out on my own, but I just need a little guidance as I walk through this project so I don't purchase the wrong components.

  1. Can someone first give me an overview of the components required (especially for power supply)?
    I believe I will get an Arduino Uno. I also think that I need an Adafruit Motor Shield. Then I'll need something to supply power to the motor from the wall. And something to supply power to the Arduino from the wall (or should I use a battery?). I'm pretty lost as far as the power supply. Transformers, transistors.. all of this is currently over my head.

I'm going to post updates to my progress and ask more questions as things are answered and I figure stuff out. If there are any guides that people can point to, that would be awesome as well.

Best Answer

So I'll throw a some quick info at you,

  1. That motor looks to be quite big, it does not give a current spec but I would expect it to draw upwards to 10A when under load. That means any motor control shield or board you buy needs to be able to handle at least the maximum current (Which i am guessing is around 10 Amps).

  2. For a motor that large, it may be difficult to find a cheep power supply for it. If money is not a problem then I'm sure you can find a 12V supply on eBay that will work.

  3. To control the speed of a motor, you need what is called an H bridge or half an H bridge if you only want to go one direction. Ebay again will have a ton of H bridge circuits that you should be able to attach to a PWM (analog out) port on the Arduino.

I would recommend you get some current measurements on the motor you want to use before trying to build a driver system for it...