This motor driver shield and its corresponding Arduino library make it easy to control two bidirectional, brushed DC motors with an Arduino or compatible board, such as the A-Star 32U4 Prime. The board features a pair of Freescale MC33926 motor drivers, which operate from 5 to 28 V and can deliver a continuous 3 A per channel, and includes current sense circuitry, protection resistors, a FET for reverse battery protection, and logic gates to reduce the required number of I/O pins. It ships fully populated with its SMD components, including the two MC33926 ICs, as shown in the picture to the right; stackable Arduino headers and terminal blocks for connecting motors and motor power are included but are not soldered in (see the Included Hardware section below).
This versatile motor driver is intended for a wide range of users, from beginners who just want a plug-and-play motor control solution for their Arduinos (and are okay with a little soldering) to more advanced users who want a dual MC33926 carrier that requires fewer I/O pins to control. The Arduino pin mappings can all be customized if the defaults are not convenient, and the simplified MC33926 control lines are broken out along the left side of the board, providing a convenient interface point for other microcontroller boards (see the right connection diagram below). This versatility, along with an option to power the Arduino directly from the shield, sets this board apart from similar competing motor shields.
For a higher-power alternative to this shield, please consider the dual VNH5019 motor driver shield, which can deliver a continuous 12 A per channel. For lower-power, lower-cost alternatives, consider the DRV8835 dual motor driver shield orA4990 dual motor driver shield.
- Wide operating voltage range: 5 – 28 V 1
- Output current: 3 A continuous (5 A peak 2) per motor
- Inputs compatible with both 5 V and 3.3 V systems
- PWM operation up to 20 kHz, which is ultrasonic and allows for quieter motor operation
- Current sense voltage output proportional to motor current (approx. 525 mV/A)
- Motor indicator LEDs show what the outputs are doing even when no motor is connected
- Can be used with an Arduino or Arduino clone (through shield headers) or other microcontroller boards (through 0.1″ header along the left side)
- When used as a shield, the motor power supply can optionally be used to power the Arduino base as well
- Arduino pin mappings can be customized if the default mappings are not convenient
- Arduino library makes it easy to get started using this board as a motor driver shield
- Detailed user’s guide
- Reverse-voltage protection on motor supply 3
- Robust drivers:
- Transient operation up to 40 V
- Over-current limiting via internal PWM
- Over-temperature shutdown and hysteresis
- Under-voltage shutdown
- Output short-to-ground and short-to-Vcc protection
1 The board supports transient (< 500 ms) operation up to 40V. Operation from 5-8 V reduces maximum continuous output current (driver performance is derated in this range).
2 Internal peak-current limiting gracefully reduces the output power at load currents above 6.5 A ± 1.5 A. See the MC33926 datasheet (1MB pdf) for more information.
3 There is no reverse-voltage protection on the logic supply.
|Pololu dual MC33926 motor driver shield for Arduino with included hardware.|
This motor driver board ships with all of the surface-mount parts populated. However, soldering is required for assembly of the included through-hole parts. The following through-hole parts are included:
- one extended/stackable 1×10 female header (for Arduino shields)
- two extended/stackable 1×8 female headers (for Arduino shields)
- two extended/stackable 1×6 female headers (for Arduino shields)
- three 2-pin, 5 mm terminal blocks (for board power and motor outputs)
- 25-pin 0.1″ straight breakaway male header
A 0.1″ shorting block (for optionally supplying shield power to Arduino) is also included.
You can solder the terminal blocks to the six large through-holes to make your motor and motor power connections, or you can break off a 12×1 section of the 0.1″ header strip and solder it into the smaller through-holes that border these larger holes. You can also solder wires directly to the board.
When not using this board as an Arduino shield, you can solder the 0.1″ headers to the logic connections along the left side of the board to enable use with custom cables or solderless breadboards, or you can solder wires directly to the board for more compact installations. Note that motor and motor power connections should not be made through a breadboard.
The mounting hole is intended for use with #4 screws (not included).
An Arduino is not included.
|Schematic diagram for the Dual MC33926 Motor Driver Shield for Arduino.|
PDF of schematic: dual MC33926 motor driver shield schematic (350k pdf).
Real-World Power Dissipation Considerations
Each MC33926 motor driver IC has a maximum continuous current rating of 5 A. However, the actual current it can deliver depends on how well you can keep it cool. The shield’s printed circuit board is designed to draw heat out of the motor driver chips, but performance can be improved by adding heat sinks.
Unlike other H-Bridges, the MC33926 has a feature that allows it to gracefully reduce current as the current exceeds 5 A or as the chip temperature approaches its limit. This means that if you push the chip close to its limit, you will see less power to the motor, but it might allow you to avoid a complete shutdown.
We tested the shield at room temperature with no forced air flow or heat sinks. In our tests, the shield was able to deliver 5 A to both channels simultaneously for 10 s before the thermal protection started reducing the current. The shield delivered 4 A on both channels for 37 s, and at 3 A it was able to operate continuously for over 10 minutes without triggering current limiting or thermal protection.
Our tests were conducted at 100% duty cycle; PWMing the motor will introduce additional heating proportional to the frequency.