The shipping fee depends on your address
Standard: 9-15 business days,fee is down to $3.99
Express: 4-7 business days,fee is down to $5.99
WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.
If you're looking for a custom product, we can help. Kindly contact us via email support@keszoox.com and send us the details for your need, then we'll let you know how we can deliver the right solution.We make into production usually Within 1 - 3 Bussiness Days.
Expect customization orders.Can power two DC 4.5-13.5V motors at 1.2A continuous per channel
These small TB6612FBG Dual Motor Driver Modules are capable of powering two DC 4.5-13.5V motors at 1.2A continuous current per channel (3.2A peak) while controlling speed and direction.
The logic circuitry operates over a range of 2.7 – 5.5V so it is both 3.3V and 5V compatible.
The module can also be used to control a single bipolar stepper motor. Since the module does not provide built-in current limiting, it is best used as a DC motor controller.
These work well when you want a drive solution for smaller motors that doesn’t require using a full shield. Being constructed of MOSFET H-bridge technology, they are more efficient and dissipate less heat than older style technology such as the L298.
The two H-bridges can be run in parallel to double the current handling capability if using with a single DC motor.
The drivers are rated for up to 1.2A. If the motors are on the smaller side such as is used on our Smart Car Chassis, two can be easily driven by each of the two drivers. This can be handy when using with a 4 wheel drive vehicle since you normally want both motors on the same side of the vehicle to be turning in unison anyway and that way one module can be used to drive all 4 wheels.
The module comes with 2 strips of male headers. These can be soldered on for use on a breadboard, or you can attach wires directly to the board depending on what your application requires. If soldering the headers on, it is recommended to insert the headers into a solderless breadboard first to hold them in alignment while soldering the pins.
The module has the pin-out labeling on the bottom side of the board. If desired, the headers can be soldered to the top side so that the labeling will be visible when the module is installed on a breadboard or just refer to our handy pic with the pins labeled.
The STBY pin is the enable pin and is active HIGH to enable the motors to operate. The STBY pin is pulled LOW via a 200K pull-down resistor by default which disables the motors. To enable the motors to operate, this pin needs to be pulled HIGH. This can be done either by tying the pin to Vcc or by driving the pin HIGH using an output pin of a uC.
The PWMA/PWMB are PWM inputs for motor speed control. The PWMA input controls the speed of Motor A and PWMB controls the speed of Motor B. The higher the PWM value (up to 255) the faster the motor turns. At low PWM values, there is a point at which the DC motor does not receive enough drive power to cause the motor to turn. A motor may require a minimum PWM value of 25 or 50 to start turning. This is best determined experimentally.
The AIN1, AIN2, BIN1 and BIN2 are control pins that determine the configuration of the two H-Bridges in the device. The AIN1 / AIN2 pins control the ‘A’ motor bridge and the BIN1 / BIN2 pins control the ‘B’ motor bridge. The H-Bridge is what controls the direction that the motor turns as shown in the chart below. It can also be used for on/off control of desired.
AIN1 / (BIN1) | AIN2 / (BIN2) | |
Forward Direction | HIGH | LOW |
Reverse Direction | LOW | HIGH |
Brake / Stopped | LOW | LOW |
Brake / Stopped | HIGH | HIGH |
Note that the direction that the motors turn (forward vs reverse) with the above commands depends on how the ‘+’ and ‘-‘ leads of the motors are wired to the module. If they are turning backwards from what is expected, reverse the motor leads at the module.
1 x 8 Header (top to bottom left side)
1 x 8 Header (top to bottom right side)
These modules work well and are straightforward to use. The logic is easy enough that a library is not needed to implement the software to control them, but there are one or more libraries available should you want to make use of them.
The program below is a simple program to illustrate the control of DC motors. It moves the motors through a repeating sequence of running them both forward, then backwards, then in opposite directions. It then ramps the motor speed up and then back down in both forwards and reverse directions. It prints out what it is doing to the Serial Monitor window.
The AIN1,AIN2, BIN1, BIN2 digital pins can be connected to any digital pins that are available on the uC. The PWMA and PWMB pins must be connected to PWM pins as we will use them for speed control.
All of the low level motor control is done in a function called Motor. The Motor function takes the following inputs:
/* * TB6612FBG Dual Motor Driver Module Test * Code for exercising the TB6612FBG Motor Control module. * The low level motor control logic is kept in the function 'Motor' * Be sure to tie STBY pin HIGH to enable the device */ // AIN1-2 and BIN1-2 can be connected to any digital pins on uC // PWMA and PWMB must be connected to PWM pins. // Motor A int const PWMA = 10; // Must be PWM pin int const AIN1 = 9; int const AIN2 = 8; // Motor B int const PWMB = 5; // Must be PWM pin int const BIN1 = 7; int const BIN2 = 6; int const MIN_SPEED = 27; // Set to minimum PWM value that will make motors turn int const ACCEL_DELAY = 50; // delay between steps when ramping motor speed up or down. //=============================================================================== // Initialization //=============================================================================== void setup() { pinMode(PWMA, OUTPUT); // set all the motor control pins to outputs pinMode(PWMB, OUTPUT); pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(BIN1, OUTPUT); pinMode(BIN2, OUTPUT); Serial.begin(9600); // Set comm speed for serial monitor messages } //=============================================================================== // Main //=============================================================================== void loop() { // This will run both motors in both directions at a fixed speed // First go Forward at 75% power for 2 seconds Motor('C', 'F', 75); delay(2000); // now change motor directions to reverse and run at 75% speed Motor('C', 'R', 75); delay(2000); // now run motors in opposite directions at same time at 50% speed Motor('A', 'F', 50); Motor ('B', 'R', 50); delay(2000); // now turn off both motors Motor('C', 'F', 0); delay(2000); // Run the motors across the range of possible speeds in both directions // Maximum speed is determined by the motor itself and the operating voltage // Accelerate from zero to maximum speed for (int i = 0; i <= 100; i++) { Motor('C', 'F', i); delay(ACCEL_DELAY); } delay (2000); // Decelerate from maximum speed to zero for (int i = 100; i >= 0; --i) { Motor('C', 'F', i); delay(ACCEL_DELAY); } delay (2000); // Set direction to reverse and accelerate from zero to maximum speed for (int i = 0; i <= 100; i++) { Motor('C', 'R', i); delay(ACCEL_DELAY); } delay (2000); // Decelerate from maximum speed to zero for (int i = 100; i >= 0; --i) { Motor('C', 'R', i); delay(ACCEL_DELAY); } // Turn off motors Motor('C', 'F', 0); delay (2000); } /* * Motor function does all the heavy lifting of controlling the motors * mot = motor to control either 'A' or 'B'. 'C' controls both motors. * dir = Direction either 'F'orward or 'R'everse * speed = Speed. Takes in 1-100 percent and maps to 0-255 for PWM control. * Mapping ignores speed values that are too low to make the motor turn. * In this case, anything below 27, but 0 still means 0 to stop the motors. */ void Motor(char mot, char dir, int speed) { // remap the speed from range 0-100 to 0-255 int newspeed; if (speed == 0) newspeed = 0; // Don't remap zero, but remap everything else. else newspeed = map(speed, 1, 100, MIN_SPEED, 255); switch (mot) { case 'A': // Controlling Motor A if (dir == 'F') { digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); } else if (dir == 'R') { digitalWrite(AIN1, LOW); digitalWrite(AIN2, HIGH); } analogWrite(PWMA, newspeed); break; case 'B': // Controlling Motor B if (dir == 'F') { digitalWrite(BIN1, HIGH); digitalWrite(BIN2, LOW); } else if (dir == 'R') { digitalWrite(BIN1, LOW); digitalWrite(BIN2, HIGH); } analogWrite(PWMB, newspeed); break; case 'C': // Controlling Both Motors if (dir == 'F') { digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); digitalWrite(BIN1, HIGH); digitalWrite(BIN2, LOW); } else if (dir == 'R') { digitalWrite(AIN1, LOW); digitalWrite(AIN2, HIGH); digitalWrite(BIN1, LOW); digitalWrite(BIN2, HIGH); } analogWrite(PWMA, newspeed); analogWrite(PWMB, newspeed); break; } // Send what we are doing with the motors out to the Serial Monitor. Serial.print ("Motor: "); if (mot=='C') Serial.print ("Both"); else Serial.print (mot); Serial.print ("\t Direction: "); Serial.print (dir); Serial.print ("\t Speed: "); Serial.print (speed); Serial.print ("\t Mapped Speed: "); Serial.println (newspeed); }
Notes:
Operating Ratings | ||
Motor Voltage Range (VM) | 4.5 – 13.5VDC | |
Logic Voltage Range (VCC) | 2.7 – 5.5VDC | |
Max Current per Bridge – Continuous | 1.2A | |
Max Current per Bridge – Peak | 3.2A | |
Maximum PWM Frequency | 100kHz | |
Dimensions | ||
Driver Board (L x W x H) | 20 x 20mm (0.8 x 0.8″) | |
Datasheet | TB6612FBG |
WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.
All orders are dispatched from our warehouse. The shipments are fully tracked—from our door to yours. Please allow 3-5 business days for your order to be processed in addition to the shipping times below.
Standard: 9-15 business days. Express: 4-7 business days.
Please note that shipping providers are extremely busy during this time, and some orders might experience a delay on top of usual delivery times. If your order is late, please allow 5-10 days more than indicated in standard shipping times before contacting our customer service. Thank you for your understanding.
All orders are 100% tracked. You’ll receive an email with a tracking number and a link to track your parcel once your order leaves our warehouse. Please allow 24-48 hours for the tracking link to start showing shipping information.
Receive our latest updates about our products & promotions.
Thanks for subscribing!
This email has been registered!