

The TB6612FNG, manufactured by SparkFun, is a dual H-bridge motor driver IC designed for controlling two DC motors or one stepper motor. It supports PWM (Pulse Width Modulation) for precise speed control and direction management. The IC is compact, efficient, and includes built-in protection features such as thermal shutdown and overcurrent protection, making it ideal for robotics, automation, and other motor control applications.








The TB6612FNG is a versatile motor driver with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage (Vcc) | 2.7V to 5.5V |
| Motor Voltage (VM) | 4.5V to 13.5V |
| Output Current (per channel) | 1.2A (continuous), 3.2A (peak) |
| Control Interface | PWM and digital logic |
| Standby Current | 1 µA (typical) |
| Built-in Protections | Thermal shutdown, overcurrent, low voltage |
| Operating Temperature | -20°C to +85°C |
| Package Type | HTSSOP-20 |
The TB6612FNG has 20 pins, with the following configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | AIN1 | Input signal for Motor A direction control |
| 2 | AIN2 | Input signal for Motor A direction control |
| 3 | PWMA | PWM input for Motor A speed control |
| 4 | AO1 | Output 1 for Motor A |
| 5 | AO2 | Output 2 for Motor A |
| 6 | VM | Motor power supply (4.5V to 13.5V) |
| 7 | GND | Ground |
| 8 | STBY | Standby control (active HIGH to enable the IC) |
| 9 | Vcc | Logic power supply (2.7V to 5.5V) |
| 10 | BIN1 | Input signal for Motor B direction control |
| 11 | BIN2 | Input signal for Motor B direction control |
| 12 | PWMB | PWM input for Motor B speed control |
| 13 | BO1 | Output 1 for Motor B |
| 14 | BO2 | Output 2 for Motor B |
| 15 | NC | No connection |
| 16 | NC | No connection |
| 17 | NC | No connection |
| 18 | NC | No connection |
| 19 | NC | No connection |
| 20 | NC | No connection |
Power Connections:
Motor Connections:
Control Signals:
Standby Mode:
Example Circuit:
Below is an example Arduino sketch to control two DC motors using the TB6612FNG:
// Define motor control pins
const int AIN1 = 2; // Motor A direction control pin 1
const int AIN2 = 3; // Motor A direction control pin 2
const int PWMA = 5; // Motor A speed control (PWM) pin
const int BIN1 = 4; // Motor B direction control pin 1
const int BIN2 = 7; // Motor B direction control pin 2
const int PWMB = 6; // Motor B speed control (PWM) pin
const int STBY = 8; // Standby control pin
void setup() {
// Set control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(STBY, OUTPUT);
// Enable the motor driver
digitalWrite(STBY, HIGH);
}
void loop() {
// Motor A: Forward at 50% speed
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 128); // 50% duty cycle (0-255)
// Motor B: Reverse at 75% speed
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 192); // 75% duty cycle (0-255)
delay(2000); // Run motors for 2 seconds
// Stop both motors
analogWrite(PWMA, 0);
analogWrite(PWMB, 0);
delay(2000); // Wait for 2 seconds
}
Motors Not Running:
Overheating:
Erratic Motor Behavior:
Q: Can the TB6612FNG drive stepper motors?
A: Yes, the TB6612FNG can drive a single stepper motor by controlling the two H-bridges. You will need to sequence the control signals appropriately.
Q: What happens if the IC overheats?
A: The TB6612FNG has a built-in thermal shutdown feature that disables the outputs to protect the IC. Allow the IC to cool down before resuming operation.
Q: Can I use the TB6612FNG with a 3.3V microcontroller?
A: Yes, the TB6612FNG supports logic levels as low as 2.7V, making it compatible with 3.3V microcontrollers.