This Adafruit V1 shield is legacy since this shield is upgraded in favor of V2 since 2014. Playground.arduino shows which pins are taken by the shield. So to drive my chassis I bought a V1 motor driver shield where I better had bought a motor driver module. But my V1 old-timer is cheap and powerful enough for this little robot application. This shield can drive up to 4 DC motors, but I am using only 2 of them (M1&M2: A=black, B=red). Since we are only using Motor1 and Motor2 both the pins DIO 5 (DC Motor #3) an DIO 6 (DC Motor #4) are free for other use. These are both PWM pins.
A motor driver can be described as an amplifier after your microprocessor to drive your engines. My chassis comes with 2 DC-motors so it must be driven with a H-bridge. An advantage for a roboteer is that this concept with DC-engines can be scaled up almost limitless. To buy the right motor driver be sure that the motor driver delivers the right 1:system, 2:voltage and 3:power to drive your engines. The specifications for my motor driver:
1. Type: H-bridge
2. Voltage: DC 3V-6V
3. Current: 100 MA-120MA.
For most applications it is better to not to use the Adafruit af-dcmotor-class for this shield. In fact you don`t need to install any library. You can just run the software from Playground.arduino.
Higher PWM frequencies should produce less audible hum in operation, but may result in lower torque with some motors and will cost a bit more processor timer and energy. In combination with this chassis the Playground.arduino hardly produces any sound, whereas the Adafruit library makes a considerable hum.
This shield draws power even if only USB is connected. This shouldn`t be the case. Prolly some port is set to output and is the shield drawing power through that port. If fact the Arduino allows that up to 200 mA per pin. Still just defining the engines makes the power leak and the green LED starts to glow a bit. However, as soon as the setSpeed command is used, the consumption (read LED) goes high.