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.