

The TB6612 DRV8833 is a dual H-bridge motor driver IC designed for driving DC motors and stepper motors. It is widely used in robotics, automation, and other motor control applications due to its compact size, high efficiency, and ease of use. This component allows for independent control of two motors, including forward, reverse, and braking functionality.
Common applications include:








The TB6612 DRV8833 motor driver has the following key technical specifications:
| Parameter | Value |
|---|---|
| Operating Voltage (Vcc) | 2.7V to 10.8V |
| Motor Output Voltage | 0V to Vcc |
| Continuous Output Current | 1.0A per channel (max) |
| Peak Output Current | 2.0A per channel (short duration) |
| Logic Input Voltage | 1.8V to 7.0V |
| PWM Frequency | Up to 100 kHz |
| Standby Current | < 1 µA |
| Thermal Shutdown | Yes |
| Overcurrent Protection | Yes |
The TB6612 DRV8833 comes in a 16-pin package. Below is the pin configuration:
| 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 | AOUT1 | Output 1 for Motor A |
| 5 | AOUT2 | Output 2 for Motor A |
| 6 | VM | Motor power supply (2.7V to 10.8V) |
| 7 | GND | Ground |
| 8 | VCC | Logic power supply (1.8V to 7.0V) |
| 9 | STBY | Standby mode control (active high) |
| 10 | BOUT2 | Output 2 for Motor B |
| 11 | BOUT1 | Output 1 for Motor B |
| 12 | PWMB | PWM input for Motor B (controls speed) |
| 13 | BIN2 | Input signal for Motor B (controls direction) |
| 14 | BIN1 | Input signal for Motor B (controls direction) |
| 15 | NC | No connection |
| 16 | NC | No connection |
Power Connections:
Motor Connections:
Control Signals:
PWM Control:
Below is an example Arduino sketch to control two DC motors using the TB6612 DRV8833:
// Define motor control pins
#define AIN1 7 // Motor A direction pin 1
#define AIN2 6 // Motor A direction pin 2
#define PWMA 5 // Motor A speed (PWM) pin
#define BIN1 4 // Motor B direction pin 1
#define BIN2 3 // Motor B direction pin 2
#define PWMB 2 // Motor B speed (PWM) pin
#define 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 (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 I use the TB6612 DRV8833 to drive stepper motors?
A: Yes, the TB6612 DRV8833 can drive stepper motors by controlling the two H-bridges in a coordinated manner. You will need to generate the appropriate step and direction signals.
Q: What is the difference between VM and VCC?
A: VM powers the motors, while VCC powers the logic circuitry of the IC. Ensure both are within their respective voltage ranges.
Q: Can I use this driver with a 3.3V microcontroller?
A: Yes, the TB6612 DRV8833 supports logic input voltages as low as 1.8V, making it compatible with 3.3V microcontrollers.