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

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

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

Introduction

The TB6612FNG is a dual H-bridge motor driver IC designed to control two DC motors or one stepper motor. It supports PWM (Pulse Width Modulation) for precise speed control and direction management. With built-in thermal shutdown protection, overcurrent protection, and low standby current, the TB6612FNG is a reliable choice for robotics, automation, and other motor control applications.

Explore Projects Built with TB6612FNG 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 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
Arduino Nano Controlled Robot with Ultrasonic Sensor and Dual Motor Drivers
Image of SENTINELS CIRCUIT : A project utilizing TB6612FNG 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
Arduino Nano and TB6612FNG Motor Driver-Based Line Following Robot with IR Sensors
Image of line following: A project utilizing TB6612FNG Motor Driver in a practical application
This circuit is a motor control system using an Arduino Nano, a TB6612FNG motor driver, and two DC Mini Metal Gear Motors. The Arduino Nano reads inputs from a 5-channel IR sensor and controls the motor driver to operate the motors, powered by a 9V battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and TB6612FNG Motor Driver-Based Wi-Fi Controlled Motor System
Image of fngwithesp32: A project utilizing TB6612FNG Motor Driver in a practical application
This circuit is designed to control a motor using an ESP32 microcontroller and a TB6612FNG motor driver. The 12V battery powers the motor driver and is stepped down to 5V to power the ESP32 and motor driver logic. The ESP32 controls the motor driver through various GPIO pins to manage motor speed and direction.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with TB6612FNG 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 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 SENTINELS CIRCUIT : A project utilizing TB6612FNG 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 line following: A project utilizing TB6612FNG Motor Driver in a practical application
Arduino Nano and TB6612FNG Motor Driver-Based Line Following Robot with IR Sensors
This circuit is a motor control system using an Arduino Nano, a TB6612FNG motor driver, and two DC Mini Metal Gear Motors. The Arduino Nano reads inputs from a 5-channel IR sensor and controls the motor driver to operate the motors, powered by a 9V battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of fngwithesp32: A project utilizing TB6612FNG Motor Driver in a practical application
ESP32 and TB6612FNG Motor Driver-Based Wi-Fi Controlled Motor System
This circuit is designed to control a motor using an ESP32 microcontroller and a TB6612FNG motor driver. The 12V battery powers the motor driver and is stepped down to 5V to power the ESP32 and motor driver logic. The ESP32 controls the motor driver through various GPIO pins to manage motor speed and direction.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics (e.g., controlling wheels or arms)
  • Automated conveyor systems
  • Remote-controlled vehicles
  • DIY electronics projects
  • Stepper motor control for CNC machines or 3D printers

Technical Specifications

Key Technical Details

  • 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 Inputs: PWM, IN1, IN2 for each channel
  • Standby Current: 1 µA (typical)
  • Built-in Protections: Thermal shutdown, overcurrent, and undervoltage lockout
  • Operating Temperature Range: -20°C to +85°C
  • Package Type: HTSSOP-20

Pin Configuration and Descriptions

The TB6612FNG has 20 pins. Below is the pinout and description:

Pin Number Pin Name Description
1 VCC Logic power supply (2.7V to 5.5V)
2 GND Ground connection
3 AIN1 Input 1 for Motor A (controls direction)
4 AIN2 Input 2 for Motor A (controls direction)
5 PWMA PWM input for Motor A (controls speed)
6 A01 Output 1 for Motor A
7 A02 Output 2 for Motor A
8 VM Motor power supply (4.5V to 13.5V)
9 STBY Standby control (active HIGH to enable the IC)
10 BIN1 Input 1 for Motor B (controls direction)
11 BIN2 Input 2 for Motor B (controls direction)
12 PWMB PWM input for Motor B (controls speed)
13 B01 Output 1 for Motor B
14 B02 Output 2 for Motor B
15 NC No connection
16 NC No connection
17 NC No connection
18 NC No connection
19 NC No connection
20 NC No connection

Usage Instructions

How to Use the TB6612FNG in a Circuit

  1. Power Connections:

    • Connect the VCC pin to a 3.3V or 5V logic power supply.
    • Connect the VM pin to the motor power supply (4.5V to 13.5V).
    • Connect the GND pin to the ground of the power supply.
  2. Motor Connections:

    • Connect the motor terminals to A01 and A02 for Motor A, and B01 and B02 for Motor B.
  3. Control Pins:

    • Use AIN1 and AIN2 to control the direction of Motor A, and BIN1 and BIN2 for Motor B.
    • Use PWMA and PWMB to control the speed of Motor A and Motor B, respectively, via PWM signals.
    • Pull the STBY pin HIGH to enable the IC. Pull it LOW to put the IC in standby mode.
  4. PWM Control:

    • Apply a PWM signal (0-100% duty cycle) to the PWMA or PWMB pins to control motor speed.

Example Arduino Code

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

// Pin definitions for Motor A
const int AIN1 = 7;  // Direction control pin 1 for Motor A
const int AIN2 = 8;  // Direction control pin 2 for Motor A
const int PWMA = 9;  // PWM speed control pin for Motor A

// Pin definitions for Motor B
const int BIN1 = 4;  // Direction control pin 1 for Motor B
const int BIN2 = 5;  // Direction control pin 2 for Motor B
const int PWMB = 6;  // PWM speed control pin for Motor B

// Standby pin
const int STBY = 10; // Standby control pin

void setup() {
  // Set all 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 pulling STBY HIGH
  digitalWrite(STBY, HIGH);
}

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

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

  delay(2000);               // Run for 2 seconds

  // Stop both motors
  analogWrite(PWMA, 0);      // Stop Motor A
  analogWrite(PWMB, 0);      // Stop Motor B
  delay(2000);               // Wait for 2 seconds
}

Important Considerations

  • Ensure the motor power supply voltage (VM) matches the motor's rated voltage.
  • Use appropriate decoupling capacitors near the power supply pins to reduce noise.
  • Avoid exceeding the maximum current rating to prevent damage to the IC.
  • Always pull the STBY pin HIGH to enable the motor driver.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors not spinning:

    • Ensure the STBY pin is pulled HIGH.
    • Verify that the motor power supply (VM) is connected and within the specified range.
    • Check the PWM signal and ensure it is being generated correctly.
  2. Motors spinning in the wrong direction:

    • Swap the connections to AIN1 and AIN2 (or BIN1 and BIN2) to reverse the direction.
  3. Overheating:

    • Ensure the current drawn by the motors does not exceed the IC's maximum rating.
    • Add a heatsink or improve ventilation if necessary.
  4. No response from the motor driver:

    • Check all connections, especially power and ground.
    • Verify that the logic voltage (VCC) is within the specified range.

FAQs

  • Can I control a stepper motor with the TB6612FNG? Yes, the TB6612FNG can control a stepper motor by driving its two coils. Use appropriate stepper motor control logic.

  • What happens if the IC overheats? The TB6612FNG has built-in thermal shutdown protection. It will disable the outputs until the temperature returns to a safe level.

  • 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 microcontrollers.