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

How to Use TB6612FNG Dual Motor Driver: Examples, Pinouts, and Specs

Image of TB6612FNG Dual Motor Driver
Cirkit Designer LogoDesign with TB6612FNG Dual Motor Driver in Cirkit Designer

Introduction

The TB6612FNG is a dual H-bridge motor driver IC manufactured by Toshiba. It is designed to control two DC motors or one stepper motor with high efficiency and precision. The IC supports features such as PWM (Pulse Width Modulation) control, direction control, and built-in thermal shutdown for protection. Its compact design and versatile functionality make it a popular choice for robotics, automation, and other motor control applications.

Explore Projects Built with TB6612FNG Dual Motor Driver

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino-Controlled Dual Motor Driver with IR Sensing
Image of Line follower 14 IR Sensor channel: A project utilizing TB6612FNG Dual Motor Driver in a practical application
This circuit controls two DC motors using a TB6612FNG motor driver, which is interfaced with an Arduino Mega 2560 microcontroller. The Arduino provides PWM signals to control the speed and direction of the motors. Multiple IR sensors are connected to the Arduino's analog inputs, likely for sensing the environment or for line-following capabilities in a robot.
Cirkit Designer LogoOpen Project in Cirkit Designer
BELA Board Controlled DC Motor System with Dual Motor Drivers
Image of Copy of motor -2: A project utilizing TB6612FNG Dual Motor Driver in a practical application
This circuit is designed to control four DC motors using two dual-channel TB6612FNG motor drivers, which are interfaced with a BELA board. The BELA board provides the control signals, while resistors are used for current limiting and signal conditioning.
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 Dual Motor Driver 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
CNC Machine Control System with Dual tb6600 Stepper Drivers and MAch3 USB Interface
Image of Jayshree CNC: A project utilizing TB6612FNG Dual Motor Driver in a practical application
This circuit appears to be a control system for a CNC machine or similar automated equipment. It includes two tb6600 Micro Stepping Motor Drivers for controlling stepper motors, a DC power source with a step-down buck converter to provide the necessary voltage levels, and a 4-channel relay module for switching higher power loads. The MAch3 CNC USB interface suggests the system is designed to interface with computer numerical control software, and the RMCS_3001 BLDC Driver indicates the presence of a brushless DC motor control. The Tiva C launchpad microcontroller and various connectors imply that the system is modular and may be programmable for specific automation tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with TB6612FNG Dual Motor Driver

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 Line follower 14 IR Sensor channel: A project utilizing TB6612FNG Dual Motor Driver in a practical application
Arduino-Controlled Dual Motor Driver with IR Sensing
This circuit controls two DC motors using a TB6612FNG motor driver, which is interfaced with an Arduino Mega 2560 microcontroller. The Arduino provides PWM signals to control the speed and direction of the motors. Multiple IR sensors are connected to the Arduino's analog inputs, likely for sensing the environment or for line-following capabilities in a robot.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Copy of motor -2: A project utilizing TB6612FNG Dual Motor Driver in a practical application
BELA Board Controlled DC Motor System with Dual Motor Drivers
This circuit is designed to control four DC motors using two dual-channel TB6612FNG motor drivers, which are interfaced with a BELA board. The BELA board provides the control signals, while resistors are used for current limiting and signal conditioning.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SENTINELS CIRCUIT : A project utilizing TB6612FNG Dual Motor Driver 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 Jayshree CNC: A project utilizing TB6612FNG Dual Motor Driver in a practical application
CNC Machine Control System with Dual tb6600 Stepper Drivers and MAch3 USB Interface
This circuit appears to be a control system for a CNC machine or similar automated equipment. It includes two tb6600 Micro Stepping Motor Drivers for controlling stepper motors, a DC power source with a step-down buck converter to provide the necessary voltage levels, and a 4-channel relay module for switching higher power loads. The MAch3 CNC USB interface suggests the system is designed to interface with computer numerical control software, and the RMCS_3001 BLDC Driver indicates the presence of a brushless DC motor control. The Tiva C launchpad microcontroller and various connectors imply that the system is modular and may be programmable for specific automation tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics and automation systems
  • Remote-controlled vehicles
  • Conveyor belts and industrial machinery
  • DIY electronics and Arduino-based projects
  • Stepper motor control for 3D printers and CNC machines

Technical Specifications

The following table outlines the key technical details of the TB6612FNG:

Parameter Value
Operating Voltage (Vcc) 2.7V to 5.5V
Motor Voltage (VM) 4.5V to 13.5V
Output Current (per channel) 1.2A (continuous), 3.2A (peak)
Control Interface PWM and direction control
Standby Current 1 µA (typical)
Thermal Shutdown Yes
Operating Temperature Range -20°C to +85°C
Package Type HTSSOP-20

Pin Configuration and Descriptions

The TB6612FNG has 20 pins, each serving a specific function. The table below provides a detailed description of each pin:

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
4 AO1 Output 1 for Motor A
5 AO2 Output 2 for Motor A
6 VM Motor power supply (4.5V to 13.5V)
7 GND Ground
8 STBY Standby control (active high to enable the IC)
9 VCC Logic power supply (2.7V to 5.5V)
10 AO2 Output 2 for Motor A (duplicate for layout symmetry)
11 BO2 Output 2 for Motor B
12 BO1 Output 1 for Motor B
13 PWMB PWM input for Motor B
14 BIN2 Input signal for Motor B (controls direction)
15 BIN1 Input signal for Motor B (controls direction)
16 NC No connection
17 NC No connection
18 NC No connection
19 NC No connection
20 GND Ground (duplicate for layout symmetry)

Usage Instructions

How to Use the TB6612FNG in a Circuit

  1. Power Supply: Connect the motor power supply (VM) to a voltage source between 4.5V and 13.5V. Connect the logic power supply (VCC) to a voltage source between 2.7V and 5.5V.
  2. Motor Connections: Connect the motor terminals to the AO1, AO2 (for Motor A) and BO1, BO2 (for Motor B) pins.
  3. Control Signals: Use the AIN1, AIN2, BIN1, and BIN2 pins to control the direction of the motors. Use the PWMA and PWMB pins to control the speed of the motors via PWM signals.
  4. Standby Mode: To enable the IC, set the STBY pin to HIGH. To disable the IC, set the STBY pin to LOW.
  5. Grounding: Ensure all GND pins are connected to a common ground.

Important Considerations and Best Practices

  • Use decoupling capacitors (e.g., 0.1 µF and 100 µF) between VM and GND to reduce noise and stabilize the power supply.
  • Avoid exceeding the maximum current rating (1.2A continuous, 3.2A peak) to prevent damage to the IC.
  • Ensure proper heat dissipation, especially when driving motors at high currents.
  • Use appropriate pull-up or pull-down resistors for control pins if needed.

Example: Connecting to an Arduino UNO

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

// Define motor control pins
const int AIN1 = 7;  // Motor A direction control pin 1
const int AIN2 = 8;  // Motor A direction control pin 2
const int PWMA = 9;  // Motor A PWM control pin
const int BIN1 = 10; // Motor B direction control pin 1
const int BIN2 = 11; // Motor B direction control pin 2
const int PWMB = 6;  // Motor B PWM control pin
const int STBY = 5;  // Standby pin

void setup() {
  // Set 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
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors Not Running:

    • Ensure the STBY pin is set to HIGH to enable the IC.
    • Verify that the power supply voltages (VM and VCC) are within the specified ranges.
    • Check the connections to the motor terminals and control pins.
  2. Overheating:

    • Ensure the current drawn by the motors does not exceed the IC's maximum ratings.
    • Add a heat sink or improve ventilation if the IC becomes too hot during operation.
  3. Erratic Motor Behavior:

    • Use decoupling capacitors to reduce noise on the power supply lines.
    • Verify the PWM signal frequency and duty cycle are appropriate for the motors.
  4. No Response from the IC:

    • Check for loose or incorrect wiring.
    • Ensure the Arduino or microcontroller is properly configured to output control signals.

FAQs

Q: Can the TB6612FNG drive stepper motors?
A: Yes, the TB6612FNG can drive a single stepper motor by controlling the two H-bridges independently.

Q: What is the recommended PWM frequency?
A: The recommended PWM frequency is between 20 kHz and 100 kHz for optimal performance.

Q: Is the IC protected against short circuits?
A: The TB6612FNG includes built-in thermal shutdown and overcurrent protection, but it is still important to avoid short circuits.

Q: Can I use the TB6612FNG with a 3.3V microcontroller?
A: Yes, the TB6612FNG supports logic levels as low as 2.7V, making it compatible with 3.3V microcontrollers.