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

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

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

Introduction

The TB6612FNG Motor Driver Module, manufactured by Breakout, is a compact and efficient dual H-bridge motor driver designed to control two DC motors or one stepper motor. It supports features such as PWM speed control, direction control, and built-in thermal protection, making it ideal for robotics, automation, and other motor control applications. Its small size and versatility make it a popular choice for hobbyists and professionals alike.

Explore Projects Built with TB6612FNG Motor Driver Module

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 Module 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 Module 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 Motor Driver Module 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
Arduino Pro Mini-Based Bluetooth and Camera-Controlled Motor System
Image of HAND GESTURE CAR: A project utilizing TB6612FNG Motor Driver Module 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

Explore Projects Built with TB6612FNG Motor Driver Module

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 Module 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 Module 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 Motor Driver Module 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
Image of HAND GESTURE CAR: A project utilizing TB6612FNG Motor Driver Module 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

Common Applications

  • Robotics and automation systems
  • Remote-controlled vehicles
  • Conveyor belts and motorized platforms
  • DIY projects involving DC or stepper motors
  • Educational electronics and prototyping

Technical Specifications

The TB6612FNG Motor Driver Module is designed to provide reliable motor control 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 Logic Voltage 3.3V or 5V compatible
PWM Frequency Up to 100 kHz
Built-in Protections Thermal shutdown, overcurrent protection
Dimensions 20mm x 15mm x 3mm (approx.)

Pin Configuration and Descriptions

The TB6612FNG module has 16 pins, which are described in the table below:

Pin Name Type Description
VCC Power Input Logic voltage input (2.7V to 5.5V).
VM Power Input Motor power supply (4.5V to 13.5V).
GND Ground Ground connection.
AIN1 Input Motor A direction control input 1.
AIN2 Input Motor A direction control input 2.
PWMA Input PWM input for Motor A speed control.
BIN1 Input Motor B direction control input 1.
BIN2 Input Motor B direction control input 2.
PWMB Input PWM input for Motor B speed control.
STBY Input Standby control pin. Set HIGH to enable the module.
AO1 Output Motor A output 1.
AO2 Output Motor A output 2.
BO1 Output Motor B output 1.
BO2 Output Motor B output 2.
NC Not Connected No connection.
GND Ground Additional ground connection for stability.

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 pins to the ground of your circuit.
  2. Motor Connections:

    • Connect the motor terminals to AO1 and AO2 for Motor A, and BO1 and BO2 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.
    • Set the STBY pin HIGH to enable the module.
  4. PWM Control:

    • Provide a PWM signal (up to 100 kHz) to the PWMA and PWMB pins to control motor speed.

Important Considerations and Best Practices

  • Ensure that the motor power supply voltage (VM) matches the requirements of your motors.
  • Do not exceed the maximum continuous current rating of 1.2A per channel to avoid overheating.
  • Use appropriate heat dissipation methods if operating near the peak current limit.
  • Always set the STBY pin HIGH to enable the module before sending control signals.
  • Use decoupling capacitors near the power supply pins to reduce noise and improve stability.

Example Code for Arduino UNO

Below is an example code snippet to control two DC motors using the TB6612FNG module with an Arduino UNO:

// Define TB6612FNG control pins
#define AIN1 7  // Motor A direction control pin 1
#define AIN2 8  // Motor A direction control pin 2
#define PWMA 9  // Motor A PWM speed control pin
#define BIN1 10 // Motor B direction control pin 1
#define BIN2 11 // Motor B direction control pin 2
#define PWMB 3  // Motor B PWM speed control pin
#define STBY 6  // 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 module
  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 HIGH to enable the module.
    • Verify that the power supply voltages (VCC and VM) are within the specified range.
    • Check the motor connections to AO1, AO2, BO1, and BO2.
  2. Overheating:

    • Ensure the current drawn by the motors does not exceed 1.2A per channel.
    • Use heat sinks or active cooling if operating near the peak current limit.
  3. Erratic Motor Behavior:

    • Verify the PWM signal frequency and duty cycle.
    • Add decoupling capacitors to the power supply lines to reduce noise.
  4. No Response to Control Signals:

    • Check the wiring of the control pins (AIN1, AIN2, BIN1, BIN2, PWMA, PWMB).
    • Ensure the Arduino or microcontroller logic voltage matches the VCC pin voltage.

FAQs

Q: Can I use the TB6612FNG to control a stepper motor?
A: Yes, the TB6612FNG can control a bipolar stepper motor by driving its two coils using the dual H-bridge configuration.

Q: What happens if the module overheats?
A: The TB6612FNG has built-in thermal shutdown protection, which disables the outputs to prevent damage. Allow the module to cool before resuming operation.

Q: Can I use a 12V motor with this module?
A: Yes, as long as the motor's operating voltage is within the VM range (4.5V to 13.5V) and the current does not exceed 1.2A per channel.