You will not gain more servo connections as the servo contacts go to pin #9 and #10 on the Arduino.
It is tested to work with Duemilanove, Diecimila, Uno (all revisions), Leonardo and Mega/ADK R3 and higher.
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
To use a V3 shield with older processor boards that do not have an IOREF pin, you must configure the logic voltage level. Find the set of 3 pads labeled "Logic" and solder a bridge from the center pad to either the 5v or 3v pad on either side depending on the voltage of your board (e.g. 5v for UNO & Mega. 3v for Due).
The TB6612B driver chip are simple H-bridge drivers with a 1.2A continuous current limit. There is no active current limiting, so you need to choose a stepper motor that will not try to pull more than that. For a detailed explanation, see this guide
A simple rule of thumb is to use a motor with a phase resistance of 10 ohms or more. This will be safe to use with supply voltages up to 12v.
The NEMA 17 motor we have in the shop has a phase resistance of about 35 ohms, so it is a good match for the shield.
NEMA-17 is just a motor frame-size designation. It tells us that the motor body is 1.7" square. It tells us nothing about the electrical characteristics. You will need to know at least the motor's phase resistance in order to determine compatibility.
See this guide for details: Matching the Driver to the Stepper
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.
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
Many small DC motor 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.
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
The shield is addressable from 0x60-0x7F. 0x70 is an "all call" address that all boards will answer to.
Page last edited August 05, 2024
Text editor powered by tinymce.