Powering DC motors with Arduino Uno

Hi,

I am pretty new to Arduino so only really know the basics. I have bought this a chassis with 4DC motors which can be powered with 3-6V and require a current of 100-120mA. I have looked online for ways to boost the current output from the arduino board with transistors but at the moment the motors rotate very slowly for a bit and then stop.

Any help/advice on this would be very much appreciated!
Thanks in advance.

Hi,

You need to understand Motor Drivers. They are not expensive...

Read some information (taken from a working Robot Kit) HERE

Example:

Thank you for your reply. I will order one now but is there any temporary way to power the motors?

You do NOT (ever) power a motor with an Arduino because it cannot provide enough current for a motor.

But you can control a motor with an Arduino through a suitable motor driver board. You need to choose a motor driver that can supply the current required by your motor and work at the appropriate voltage.

...R

ok - thank you very much for your time and help.

Motors rated at 120mA for normal use may draw a lot more at stall/startup (perhaps 1A or so). You
need to be sure the driver transistor isn't going to fry with this sort of current pulse. This usually
means using logic-level MOSFET. Any attempt to switch an inductive load like a relay or motor
requires some component(s) to tame the inductive kick-back, or else the circuit won't last long.
Typically for a single transistor/MOSFET controlling a motor you'd use a free-wheeling diode
across the motor terminals for this protection.

OK thank you - does anyone know of a driver board that can drive 4 motors at once as I can only find ones which can drive 2. Sorry to be such a pain!

The gist of it is that an Arduino simply doesn't put out enough power/current to power all but the tiniest of motors, and even with those you still need some additional circuitry to make it work properly, especially a flyback or kickback diode to prevent the motor from frying the Arduino pin when it turns off and briefly puts out a voltage surge due to self-induction.

But, in nearly all cases, you need some sort of transistor-based motor driver circuit that provides its own power to the motor(s) from a power source other than the Arduino itself, that shares a common ground with the Arduino. You can build your own circuit, called an H-bridge, but most often you'd do best to go with either a motor driver chip like the 293D or 298D, or, especially if you're driving multiple motors, a motor driver board such as the above one, or one like the Adafruit one that IIRC can drive up to 4 motors.

My advice would be to study the basic electronics behind driving motors with an Arduino to get a sense for how this works and why you need the additional circuitry, and then order the parts needed and start building your project with them. That way you go in knowing what you're doing and why, and don't risk frying anything expensive or a PITA to replace.

OK thank you - does anyone know of a driver board that can drive 4 motors at once as I can only find ones which can drive 2.

Many people just use two 2-motor drivers..

Can Adafruit Motor Shield work with Arduino Duemilanove (Atmega328)?

Note: Pls don't use complicated language because I am a newbie.

terryking228:
Many people just use two 2-motor drivers..

Could I connect two motors to each of the two outputs in parallel on the L298? I know they would turn on/off at the same time which is fine for my project. If I were to do this, would I need to use a larger battery than if I only connected two motors to the L298?

Yes, I believe so. This is how it works on a robot car my nephew has, which uses a 298D-based motor driver shield to drive the left and right wheels together. In fact I believe it has duplicate sets of JST connectors for each driver, to allow you to do this.

Thx for all your help - I have got a 298D driver board but i cant get it to work properly. I have tested it with my multimeter and found out that the motor outputs have the correct voltage but no current is flowing. Can someone please help me!

Klutotechnes:
Thx for all your help - I have got a 298D driver board but i cant get it to work properly. I have tested it with my multimeter and found out that the motor outputs have the correct voltage but no current is flowing. Can someone please help me!

Unless you explain how you've connected everything or include a schematic, it's impossible for anyone to help you figure out what's wrong. But basically, you connect your motor voltage source's +V (NOT any of the Arduino's voltage pins) and GND to it, along with the motor(s) and the Arduino's output pins, and also make sure to connect the Arduino's GND to its GND, load your code, and it should work. There are also some jumpers on some boards you have to set correctly for your intended use and voltage source.

This Instructable might help: