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 features such as PWM (Pulse Width Modulation) control, direction control, and current sensing, making it a versatile choice for motor control applications. This compact and efficient IC is widely used in robotics, automation systems, and other projects requiring precise motor control.

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 Motor Control System with Pushbutton Interface
Image of LFR CKT: A project utilizing TB6612FNG motor driver in a practical application
This circuit uses an Arduino Nano to control a TB6612FNG motor driver, which in turn controls two motors. The circuit also includes two pushbuttons for user input, allowing the Arduino to receive commands and control the motor driver accordingly.
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 LFR CKT: A project utilizing TB6612FNG motor driver in a practical application
Arduino Nano Motor Control System with Pushbutton Interface
This circuit uses an Arduino Nano to control a TB6612FNG motor driver, which in turn controls two motors. The circuit also includes two pushbuttons for user input, allowing the Arduino to receive commands and control the motor driver accordingly.
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 robotic arms)
  • Automated conveyor systems
  • Remote-controlled vehicles
  • Stepper motor-based positioning systems
  • DIY electronics and Arduino projects

Technical Specifications

The TB6612FNG motor driver offers robust performance with the following key specifications:

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 digital logic inputs
Standby Current 1 µA (typical)
Operating Temperature -20°C to +85°C
Package Type HTSSOP-20

Pin Configuration and Descriptions

The TB6612FNG has 20 pins, each serving a specific function. Below is the pinout and description:

Pin Number Pin Name Description
1 AIN1 Input signal for Motor A direction control
2 AIN2 Input signal for Motor A direction control
3 PWMA PWM input for Motor A speed control
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 GND Ground
8 VCC Logic power supply (2.7V to 5.5V)
9 STBY Standby control (active HIGH to enable the IC)
10 BIN1 Input signal for Motor B direction control
11 BIN2 Input signal for Motor B direction control
12 PWMB PWM input for Motor B speed control
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 VM pin to the motor power supply (4.5V to 13.5V).
    • Connect the VCC pin to the logic power supply (2.7V to 5.5V).
    • Connect the GND pin to the ground of the circuit.
  2. Motor Connections:

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

    • Use the AIN1 and AIN2 pins to control the direction of Motor A, and BIN1 and BIN2 for Motor B.
    • Provide a PWM signal to the PWMA and PWMB pins to control the speed of Motor A and Motor B, respectively.
    • Set the STBY pin HIGH to enable the IC.
  4. Direction Control:

    • Set AIN1 HIGH and AIN2 LOW to rotate Motor A in one direction.
    • Set AIN1 LOW and AIN2 HIGH to rotate Motor A in the opposite direction.
    • Similarly, use BIN1 and BIN2 for Motor B.
  5. PWM Speed Control:

    • Provide a PWM signal (0% to 100% duty cycle) to the PWMA and PWMB pins to control the speed of the motors.

Example: Using TB6612FNG with Arduino UNO

Below is an example Arduino sketch to control two DC motors using the TB6612FNG:

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

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

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

  delay(2000);               // Run motors for 2 seconds

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

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

Important Considerations

  • Ensure that the motor power supply voltage (VM) matches the requirements of your motors.
  • Avoid exceeding the maximum continuous current rating (1.2A per channel) to prevent overheating.
  • Use appropriate decoupling capacitors near the VM and VCC pins to reduce noise and improve stability.
  • Always set the STBY pin HIGH to enable the IC before sending control signals.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors Not Spinning:

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

    • Check the connections to the AIN1, AIN2, BIN1, and BIN2 pins.
    • Reverse the logic levels on the direction control pins to change the motor's rotation direction.
  3. Motor Speed is Inconsistent:

    • Ensure the PWM signal is stable and within the correct frequency range (typically 20kHz or higher).
    • Check for loose connections or insufficient power supply.
  4. IC Overheating:

    • Verify that the current drawn by the motors does not exceed the maximum continuous current rating (1.2A per channel).
    • Consider adding a heat sink or improving ventilation around the IC.

FAQs

Q: Can the TB6612FNG drive stepper motors?
A: Yes, the TB6612FNG can drive a bipolar stepper motor by controlling the two H-bridges. You will need to sequence the control signals appropriately.

Q: What is the purpose of the STBY pin?
A: The STBY pin is used to enable or disable the IC. Setting it LOW puts the IC in standby mode, reducing power consumption.

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.

Q: What is the maximum PWM frequency supported?
A: The TB6612FNG can handle PWM frequencies up to 100kHz, but typical applications use frequencies around 20kHz.