This tutorial is for the now ancient V1 Motor shield. Chances are you have a V2, check out the tutorial This tutorial is for historical reference and previous customers only!
How many motors can I use with this shield?
You can use 2 DC servos that run on 5V and up to 4 DC motors or 2 stepper motors (or 1 stepper and up to 2 DC motors)
Can I connect more motors?
No, at this time it is not possible to stack the shield or otherwise connect it up easily to control 4 steppers, for example.
HELP! My motor doesnt work! - HELP! My motor doesnt work!...But the servos work FINE!

Is the LED lit? The Stepper and DC motor connections wont do a single thing if the LED is not lit

Don't bother writing up uploading code or wiring up motors if the LED doesn't light up, its not going to work.

What is the LED for?
The LED indicates the DC/Stepper motor power supply is working. If it is not lit, then the DC/Stepper motors will not run. The servo ports are 5V powered and does not use the DC motor supply.
I'm trying to build this robot and it doesn't seem to run on a 9V battery....
Please read the user manual for information about appropriate power supplies.
Can this shield control small 3V motors?
Not really, its meant for larger, 6V+ motors. It does not work for 3V motors unless you overdrive them at 6V and then they will burn out faster
What is the power connector on the shield for? How do I power my motors?
Please read the user manual for information about appropriate power supplies.
My Arduino freaks out when the motors are running! Is the shield broken?
Motors take a lot of power, and can cause 'brownouts' that reset the Arduino. For that reason the shield is designed for seperate (split) supplies - one for the electronics and one for the motor. Doing this will prevent brownouts. Please read the user manual for information about appropriate power supplies.
I have good solid power supplies, but the DC motors seem to 'cut out' or 'skip'.
Try soldering a ceramic or disc 0.1uF capacitor between the motor tabs (on the motor itself!) this will reduce noise that could be feeding back into the circuit (thanks macegr!)
What pins are not used on the motor shield?

All 6 analog input pins are available. They can also be used as digital pins (pins #14 thru 19)

Digital pin 2, and 13 are not used.

The following pins are in use only if the DC/Stepper noted is in use:
Digital pin 11: DC Motor #1 / Stepper #1 (activation/speed control)
Digital pin 3: DC Motor #2 / Stepper #1 (activation/speed control)
Digital pin 5: DC Motor #3 / Stepper #2 (activation/speed control)
Digital pin 6: DC Motor #4 / Stepper #2 (activation/speed control)

The following pins are in use if any DC/steppers are used
Digital pin 4, 7, 8 and 12 are used to drive the DC/Stepper motors via the 74HC595 serial-to-parallel latch

The following pins are used only if that particular servo is in use:
Digitals pin 9: Servo #1 control
Digital pin 10: Servo #2 control

Which pins are connected to the DC/Stepper motors?
The DC/Stepper motors are NOT connected to the Arduino directly. They are connected to the 74HC595 latch which is spoken to by the Arduino. You CANNOT talk directly to the motors, you MUST use the motor shield library.
How can I connect to the unused pins?

The analog pins (analog 0-5 also known as digital pins 14-19) are broken out in the bottom right corner.

Pin 2 has a small breakout since its the only truly unused pin

The remaining pins are not broken out because they could be used by the motor shield. If you are sure that you are not using those pins then you can connect to them by using stacking headers when assembling the kit or soldering onto the top of the header with wires, or using a "Wing shield"

I get the following error trying to run the example code: "error: AFMotor.h: No such file or directory...."
Make sure you have installed the AFMotor library
How do I install the library?
I have two stepper motors and I want to run them simulaneously but the example code can only control one and then the other?

The stepper motor library step() routine does not have the ability to run both motors at a time. Instead, you will have to 'interleave' the calls. For example, to have both motors step forward 100 times you must write code like this:

for (i=0; i<100; i++) {
motor1.step(1, FORWARD, SINGLE); 
motor2.step(1, FORWARD, SINGLE);

If you want more intelligent control, check out the AccelStepper library (in the Downloads section) which has some concurrent stepper motor control examples

What are some 'suggested motors'?

Most people buy motors from surplus shops and no motor will make everyone happy

However, since its a popular question, I suggest buying motors from Pololu (DC ServosDC motors) or Jameco (all sorts!) As well as the many surplus webshops.

Is the motor shield compatible with the UNO R3 or Mega R3? What about the extra pins?
The motor shield is compatible with the R3 UNO and MEGA.  The R3s have 2 extra pins on each header.  These are duplicates of other pins on the header and are not needed by the shield.
I'm using a 4WD robot platform and I can't get anything to work.
The motors used in the 4WD robot platforms from Maker Shed, DF Robotics, Jameco and others have a lot of "brush noise".  This feeds back into the Arduino circuitry and causes unstable operation.  This problem can be solved by soldering 3 noise suppression capacitors to the motor.  1 between the motor terminals, and one from each terminal to the motor casing.
But my motor already has a capacitor on it and it still doesn't work.
These motors generate a lot of brush noise and usually need the full 3-capacitor treatment for adequate suppression.
Why don't you just design capacitors into the shield?
They would not be effective there.  The noise must be suppressed at the source or the motor leads will act like antennae and broadcast it to the rest of the system.

This guide was first published on Aug 27, 2012. It was last updated on Aug 27, 2012.

This page (FAQ) was last updated on Aug 13, 2012.

Text editor powered by tinymce.