

The TB6612FNG is a dual H-bridge motor driver IC designed for controlling two DC motors or one stepper motor. It supports motor voltage ranges from 2.5V to 13.5V and offers features such as PWM (Pulse Width Modulation) control for speed regulation, direction control, and built-in thermal shutdown protection. This compact and efficient IC is widely used in robotics, automation, and other motor control applications.








| Parameter | Value |
|---|---|
| Motor Voltage Range | 2.5V to 13.5V |
| Logic Voltage Range | 2.7V to 5.5V |
| Continuous Output Current | 1.2A per channel (max) |
| Peak Output Current | 3.2A per channel (short duration) |
| PWM Frequency | Up to 100 kHz |
| Control Logic | High/Low signals and PWM |
| Built-in Protections | Thermal shutdown, overcurrent |
| Package Type | SSOP24 |
The TB6612FNG has 24 pins. Below is a summary of the key pins:
| 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 (2.5V to 13.5V) |
| 7 | GND | Ground |
| 8 | VCC | Logic power supply (2.7V to 5.5V) |
| 9 | STBY | Standby control (active high to enable the IC) |
| 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-24 | NC | Not connected |
Power Connections:
Motor Connections:
Control Signals:
Direction Control:
PWM Control:
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 pin 1
const int AIN2 = 3; // Motor A direction pin 2
const int PWMA = 5; // Motor A PWM pin
const int BIN1 = 4; // Motor B direction pin 1
const int BIN2 = 7; // Motor B direction pin 2
const int PWMB = 6; // Motor B PWM pin
const int STBY = 8; // Standby 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);
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 (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
}
Motors Not Spinning:
Motor Spins in the Wrong Direction:
Overheating:
PWM Control Not Working:
Q: Can I use the TB6612FNG to drive a stepper motor?
A: Yes, the TB6612FNG can drive a stepper motor by controlling the two H-bridges in a coordinated manner. You will need to generate the appropriate step and direction signals.
Q: What happens if the IC overheats?
A: The TB6612FNG has built-in thermal shutdown protection. If it overheats, it will temporarily disable the outputs until the temperature returns to a safe level.
Q: Can I use a single power supply for both VM and VCC?
A: Yes, as long as the voltage is within the range of 2.7V to 5.5V for VCC and 2.5V to 13.5V for VM. However, separate supplies are recommended for better performance.