

The Dual TB9051FTG Motor Driver Shield for Arduino, manufactured by Pololu, is a high-performance motor driver shield designed to control two DC motors. It is built around Toshiba's TB9051FTG motor driver IC, which offers high efficiency, low heat generation, and robust protection features. This shield is designed to integrate seamlessly with Arduino boards, making it an excellent choice for robotics, automation, and other motor control applications.








The following are the key technical details of the Dual TB9051FTG Motor Driver Shield:
| Parameter | Specification |
|---|---|
| Operating Voltage | 4.5 V to 28 V |
| Continuous Output Current | 2.6 A per channel |
| Peak Output Current | 5 A per channel (short duration) |
| Logic Voltage | 3.3 V or 5 V (compatible with Arduino) |
| PWM Frequency | Up to 20 kHz |
| Motor Channels | 2 (independent control) |
| Protection Features | Overcurrent, overvoltage, undervoltage, |
| and overtemperature protection | |
| Dimensions | 68 mm × 53 mm |
The shield connects directly to an Arduino board, utilizing the standard Arduino pin headers. Below is a table describing the key pins and their functions:
| Pin | Function |
|---|---|
| VIN | Power input for motors (4.5 V to 28 V) |
| GND | Ground connection |
| AIN1, AIN2 | Control inputs for Motor A (direction control) |
| BIN1, BIN2 | Control inputs for Motor B (direction control) |
| PWMA | PWM input for Motor A speed control |
| PWMB | PWM input for Motor B speed control |
| DIAGA/DIAGB | Diagnostic outputs for Motor A and Motor B |
| ENA/ENB | Enable inputs for Motor A and Motor B |
| CS | Current sense output (shared for both motors) |
Below is an example Arduino sketch to control two motors using the shield:
// Example code for controlling two DC motors with the Dual TB9051FTG Motor Driver Shield
// Define motor control pins
const int AIN1 = 7; // Motor A direction control pin 1
const int AIN2 = 8; // Motor A direction control pin 2
const int PWMA = 9; // Motor A speed control (PWM) pin
const int BIN1 = 4; // Motor B direction control pin 1
const int BIN2 = 5; // Motor B direction control pin 2
const int PWMB = 6; // Motor B speed control (PWM) pin
void setup() {
// Set motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
}
void loop() {
// Motor A: Forward at 50% speed
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 128); // 50% duty cycle (128 out of 255)
// Motor B: Reverse at 75% speed
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 192); // 75% duty cycle (192 out of 255)
delay(2000); // Run motors for 2 seconds
// Stop both motors
analogWrite(PWMA, 0);
analogWrite(PWMB, 0);
delay(2000); // Wait for 2 seconds before repeating
}
Motors Not Running:
Overheating:
Erratic Motor Behavior:
Diagnostic Pins Indicating Faults:
Q: Can I use this shield with stepper motors?
A: No, the Dual TB9051FTG Motor Driver Shield is designed for DC motors and is not suitable for stepper motors.
Q: What is the maximum PWM frequency supported?
A: The shield supports PWM frequencies up to 20 kHz, which is suitable for most motor control applications.
Q: Can I stack other shields on top of this one?
A: Yes, as long as the other shields do not conflict with the pins used by the motor driver shield.
Q: How do I monitor motor current?
A: The shield provides a current sense output (CS pin) that can be read using an analog input on the Arduino.