

The TB6612FNG 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. With a compact design and robust features like thermal shutdown protection, this IC is ideal for robotics, automation, and other motor control applications.








The TB6612FNG has 20 pins, with the following configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | AIN1 | Input signal for Motor A (controls direction) |
| 2 | AIN2 | Input signal for Motor A (controls direction) |
| 3 | PWMA | PWM input for Motor A (controls speed) |
| 4 | A01 | Output 1 for Motor A |
| 5 | A02 | Output 2 for Motor A |
| 6 | VM | Motor power supply (4.5V to 13.5V) |
| 7 | VCC | Logic power supply (2.7V to 5.5V) |
| 8 | STBY | Standby control (active HIGH) |
| 9 | BIN1 | Input signal for Motor B (controls direction) |
| 10 | BIN2 | Input signal for Motor B (controls direction) |
| 11 | PWMB | PWM input for Motor B (controls speed) |
| 12 | B01 | Output 1 for Motor B |
| 13 | B02 | Output 2 for Motor B |
| 14 | GND | Ground |
| 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:
Below is an example code to control two DC motors using the TB6612FNG and an Arduino UNO:
// Define motor control pins
#define AIN1 7 // Motor A direction control pin 1
#define AIN2 6 // Motor A direction control pin 2
#define PWMA 5 // Motor A speed control (PWM) pin
#define BIN1 4 // Motor B direction control pin 1
#define BIN2 3 // Motor B direction control pin 2
#define PWMB 2 // Motor B speed control (PWM) pin
#define STBY 8 // Standby control 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 by setting STBY HIGH
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:
No Response to PWM Signals:
Can the TB6612FNG drive stepper motors? Yes, the TB6612FNG can control a bipolar stepper motor by using both H-bridges.
What happens if the motor current exceeds 1.2A? The IC has overcurrent protection and thermal shutdown features to prevent damage. However, prolonged overcurrent conditions should be avoided.
Can I use the TB6612FNG with a 3.3V microcontroller? Yes, the TB6612FNG supports logic levels as low as 2.7V, making it compatible with 3.3V systems.