Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use TB6612FNG: Examples, Pinouts, and Specs

Image of TB6612FNG
Cirkit Designer LogoDesign with TB6612FNG in Cirkit Designer

Introduction

The TB6612FNG, manufactured by Pololu, 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 performance, the TB6612FNG is widely used in robotics, automation, and other motor control applications.

Explore Projects Built with TB6612FNG

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
Image of women safety: A project utilizing TB6612FNG in a practical application
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Pro Mini-Based Bluetooth and Camera-Controlled Motor System
Image of HAND GESTURE CAR: A project utilizing TB6612FNG in a practical application
This circuit is a remote-controlled robotic system featuring an Arduino Pro Mini, a TB6612FNG motor driver, and an NRF24L01 wireless module. The Arduino controls four DC motors via the motor driver and communicates wirelessly using the NRF24L01 module, while an OV7670 camera module and an HC-05 Bluetooth module provide additional functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled Robot with Ultrasonic Sensor and Dual Motor Drivers
Image of SENTINELS CIRCUIT : A project utilizing TB6612FNG in a practical application
This circuit features an Arduino Nano microcontroller interfaced with a TB6612FNG motor driver to control two DC Mini Metal Gear Motors. It also includes an HC-SR04 Ultrasonic Sensor for distance measurement, a 5 channel IR sensor for line tracking, and a Servomotor SG90 for positioning tasks. The system is powered by a 12V battery, with the Arduino Nano managing sensor inputs and motor outputs to perform tasks such as navigation or automation.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 Bluetooth-Controlled Dual Joystick Motor Driver System
Image of sumo: A project utilizing TB6612FNG in a practical application
This circuit is a remote-controlled motor system using two ESP32 microcontrollers and joystick modules. One ESP32 reads joystick positions and transmits them via Bluetooth to the second ESP32, which controls two DC motors through a TB6612FNG motor driver. The system includes LEDs for status indication and is powered by a 9V battery and a LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with TB6612FNG

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of women safety: A project utilizing TB6612FNG in a practical application
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of HAND GESTURE CAR: A project utilizing TB6612FNG in a practical application
Arduino Pro Mini-Based Bluetooth and Camera-Controlled Motor System
This circuit is a remote-controlled robotic system featuring an Arduino Pro Mini, a TB6612FNG motor driver, and an NRF24L01 wireless module. The Arduino controls four DC motors via the motor driver and communicates wirelessly using the NRF24L01 module, while an OV7670 camera module and an HC-05 Bluetooth module provide additional functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SENTINELS CIRCUIT : A project utilizing TB6612FNG in a practical application
Arduino Nano Controlled Robot with Ultrasonic Sensor and Dual Motor Drivers
This circuit features an Arduino Nano microcontroller interfaced with a TB6612FNG motor driver to control two DC Mini Metal Gear Motors. It also includes an HC-SR04 Ultrasonic Sensor for distance measurement, a 5 channel IR sensor for line tracking, and a Servomotor SG90 for positioning tasks. The system is powered by a 12V battery, with the Arduino Nano managing sensor inputs and motor outputs to perform tasks such as navigation or automation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of sumo: A project utilizing TB6612FNG in a practical application
ESP32 Bluetooth-Controlled Dual Joystick Motor Driver System
This circuit is a remote-controlled motor system using two ESP32 microcontrollers and joystick modules. One ESP32 reads joystick positions and transmits them via Bluetooth to the second ESP32, which controls two DC motors through a TB6612FNG motor driver. The system includes LEDs for status indication and is powered by a 9V battery and a LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics: Driving wheels or actuators in mobile robots.
  • Automation: Controlling conveyor belts or small machinery.
  • DIY Projects: Motorized toys, RC vehicles, and hobbyist electronics.
  • Stepper Motor Control: Driving stepper motors in CNC machines or 3D printers.

Technical Specifications

Key Technical Details

  • Operating Voltage (Vcc): 2.5V to 13.5V
  • Logic Voltage (Vcc for logic): 2.7V to 5.5V
  • Output Current (per channel): 1.2A (continuous), 3.2A (peak)
  • Control Method: PWM (up to 100 kHz)
  • Standby Current: 1 µA (typical)
  • Thermal Shutdown Protection: Yes
  • Overcurrent Protection: Yes
  • Operating Temperature Range: -20°C to +85°C
  • Package Type: SSOP24

Pin Configuration and Descriptions

The TB6612FNG has 24 pins, but the most commonly used pins for motor control are listed below:

Pin Name Pin Number Description
VCC 1 Logic power supply (2.7V to 5.5V).
VM 4 Motor power supply (2.5V to 13.5V).
GND 3, 5, 21 Ground connection.
AIN1 7 Input signal for Motor A (controls direction).
AIN2 8 Input signal for Motor A (controls direction).
PWMA 9 PWM input for Motor A (controls speed).
BIN1 11 Input signal for Motor B (controls direction).
BIN2 12 Input signal for Motor B (controls direction).
PWMB 13 PWM input for Motor B (controls speed).
STBY 10 Standby control pin (active HIGH to enable the IC).
AO1, AO2 15, 16 Output pins for Motor A.
BO1, BO2 18, 19 Output pins for Motor B.
NC Various No connection (not used).

Usage Instructions

How to Use the TB6612FNG in a Circuit

  1. Power Connections:

    • Connect the logic voltage (2.7V to 5.5V) to the VCC pin.
    • Connect the motor power supply (2.5V to 13.5V) to the VM pin.
    • Ensure all GND pins are connected to the ground of the circuit.
  2. Motor Connections:

    • Connect the motor terminals to AO1/AO2 for Motor A and BO1/BO2 for Motor B.
  3. Control Signals:

    • Use AIN1/AIN2 and BIN1/BIN2 to control the direction of Motor A and Motor B, respectively.
    • Use PWMA and PWMB to control the speed of Motor A and Motor B using PWM signals.
    • Set the STBY pin HIGH to enable the IC.
  4. PWM Frequency:

    • The TB6612FNG supports PWM frequencies up to 100 kHz. A typical frequency of 20 kHz is recommended for most applications.

Example: Connecting to an Arduino UNO

Below is an example of how to control two DC motors using the TB6612FNG and an Arduino UNO.

Circuit Connections

  • Motor A:
    • Connect AO1 and AO2 to the terminals of Motor A.
    • Connect AIN1, AIN2, and PWMA to Arduino digital pins 2, 3, and 5, respectively.
  • Motor B:
    • Connect BO1 and BO2 to the terminals of Motor B.
    • Connect BIN1, BIN2, and PWMB to Arduino digital pins 7, 8, and 6, respectively.
  • Power:
    • Connect VCC to the Arduino 5V pin.
    • Connect VM to an external motor power supply (e.g., 9V battery).
    • Connect all GND pins to the Arduino GND.

Arduino Code Example

// Define motor control pins
#define AIN1 2  // Motor A direction pin 1
#define AIN2 3  // Motor A direction pin 2
#define PWMA 5  // Motor A speed (PWM) pin
#define BIN1 7  // Motor B direction pin 1
#define BIN2 8  // Motor B direction pin 2
#define PWMB 6  // Motor B speed (PWM) pin
#define STBY 4  // 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 by setting STBY HIGH
  digitalWrite(STBY, HIGH);
}

void loop() {
  // Example: Run Motor A forward at 50% speed
  digitalWrite(AIN1, HIGH);
  digitalWrite(AIN2, LOW);
  analogWrite(PWMA, 128);  // 50% duty cycle (128/255)

  // Example: Run Motor B backward at 75% speed
  digitalWrite(BIN1, LOW);
  digitalWrite(BIN2, HIGH);
  analogWrite(PWMB, 192);  // 75% duty cycle (192/255)

  delay(2000);  // Run for 2 seconds

  // Stop both motors
  analogWrite(PWMA, 0);
  analogWrite(PWMB, 0);

  delay(2000);  // Wait for 2 seconds
}

Important Considerations

  • Ensure the motor power supply (VM) matches the voltage requirements of your motors.
  • Use appropriate decoupling capacitors near the power supply pins to reduce noise.
  • Avoid exceeding the maximum current rating (1.2A continuous, 3.2A peak) to prevent damage.
  • Use heat sinks or proper ventilation if operating near the maximum current for extended periods.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors Not Running:

    • Ensure the STBY pin is set HIGH to enable the IC.
    • Verify that the motor power supply (VM) is connected and within the specified range.
  2. Motor Running in the Wrong Direction:

    • Check the logic levels on AIN1/AIN2 or BIN1/BIN2. Swap the HIGH/LOW signals to reverse direction.
  3. Motor Speed Not Changing:

    • Ensure the PWM signal is being generated correctly on the PWMA/PWMB pins.
    • Verify that the PWM frequency is within the supported range (up to 100 kHz).
  4. Overheating:

    • Check if the current draw exceeds the IC's maximum rating.
    • Add a heat sink or reduce the load on the motors.

FAQs

  • Can I use the TB6612FNG to drive a stepper motor? Yes, the TB6612FNG can drive a bipolar stepper motor by controlling the two H-bridges independently.

  • What happens if the STBY pin is left floating? The IC will remain in standby mode. Always pull the STBY pin HIGH to enable operation.

  • Is it possible to control the TB6612FNG with 3.3V logic? Yes, the TB6612FNG supports logic voltages as low as 2.7V, making it compatible with 3.3V systems.