What if I also need some more servos?
What Arduinos is this shield compatible with?
It can work with Mega R2 and lower if you solder a jumper wire from the shield's SDA pin to Digital 20 and the SCL pin to Digital 21
For use with the Due or other 3.3v processors, you must configure the board for 3.3v logic levels. Find the set of 3 pads labeled "Logic". Cut the small trace between the center pad and 5v and add a jumper from 3.3v to the center.
How do I install the library?
HELP! My motor doesnt work! - HELP! My motor doesnt work!...But the servos work FINE!
You must connect 5-12VDC power to the shield through the POWER terminal blocks or through the DC barrel jack on the Arduino and VIN jumper.
What pins are/are not used on the motor shield?
GND and either 5v (default) or 3.3v are required to power the logic on-board. (5v or 3v operation is selectable via jumper)
The shield uses the SDA and SCL i2c pins to control DC and stepper motors. On the Arduino UNO these are also known as A4 and A5. On the Mega these are also known as Digital 20 and 21. On the Leonardo these are also known as digital 2 and 3. Do not use those pins on those Arduinos with this shield with anything other than an i2c sensor/driver.
Since the shield uses I2C to communicate, you can connect any other i2c sensor or driver to the SDA/SCL pins as long as they do not use address 0x60 (the default address of the shield) or 0x70 (the 'all call' address that this chip uses for group-control)
If you want to use the servo connections, they are on pins #9 and #10. If you do not use the connector then those pins are simply not used.
You can use any other pins for any other use
My Arduino freaks out when the motors are running! Is the shield broken?
I have good solid power supplies, but the DC motors seem to 'cut out' or 'skip'.
I'm using a 4WD robot platform and I can't get anything to work.
Many smal DC motor such as the ones used in the 4WD robot platforms from some distributors have a lot of "brush noise". This feeds back into the Arduino circuitry and causes unstable operation. This problem can be solved by soldering some 0.1uF ceramic noise suppression capacitors to the motor.
You will need 3 total. 1 between the motor terminals, and one from each terminal to the motor casing.
Why won't my stepper motor go any faster?
Since the shield is controlled by i2c, the maximum step rate is limited by the i2c bus speed. The default bus speed is 100KHz and can be increased to 400KHz by editing the library file in your Arduino installation folder. The file can be found in hardware/libraries/wire/utility/twi.h.
Find the line with: "#define TWI_FREQ 100000L"
and change it to "#define TWI_FREQ 400000L"
Or, you can add the following code to your setup() function: (Note: this line must be inserted after the call to begin())
TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz