See our Tiny Circuits Range Here.
Description:
Based around the 2mm x 2mm TI DRV8837 Motor Driver (H-Bridge) IC, this board is incredibly tiny at only 10mm in diameter, yet can drive a 5V 1.8Amp motor! The DRV8837 is extremely easy to use and interface to your favourite processor board (such as a TinyDuino, TinyLily or a standard Arduino), and uses a simple PWM to control motor speed, direction, coasting and braking. The board includes a bypass capacitors and all the I/O of the DRV8837 brought out to sewtabs, as well as heatsinking the chip to a large plane on the bottom side of the board to help with heat dissipation.
The TI DRV8837 has one H-bridge driver consisting of N-channel power MOSFETs to drive a DC motor or one winding of a stepper motor, or other devices like solenoids. An internal charge pump generates needed gate-drive voltages. There are internal shutdown functions for overcurrent protection, short-circuit protection, undervoltage lockout and over temperature. The DRV8837 can supply up to 1.8 A of output current. It operates on a motor power-supply voltage from 1.8 V to 11 V, and a device power-supply voltage of 1.8 V to 7 V. There is also a extremely low power sleep mode with 120nA sleep current.
Specification:
Model number: ASL2001
Washable
Eight Sewtabs – 1.2mm in diameter, easy to use with standard conductive thread and needles
Robust Gold Finish – makes soldering easy and is non-corrosive
Ultra compact size and weight
Dimensions: 10mm diameter (0.394 inches)
Max Height: 1.41mm (0.056 inches)
Ultra-thin 0.61mm (0.024 inches) PCB
Weight: TBD grams (TBD ounces)
TI DRV8837 H-bridge motor driver
Low MOSFET On-Resistance: HS + LS 280mOhm
1.8A Max Drive Current
1.8V to 11V Motor Operating Supply Voltage Range
Seperate Motor and Logic Power Supply Pins
PWM (IN/IN) Interface
Dedicated Sleep Pin
Pinout:
VM - Motor Voltage Input
This supplies the voltage to the motor and can range from 1.8 to 11 Volts.
High Current Connection
GND - Ground Connection
This is the Ground return and needs to connect to the Ground for both the VM supply and the VCC supply.
High Current Connection
VCC - Logic Voltage Input
This is the logic voltage input, and needs to be the same voltage as the system driving the motor controller (like the TinyLily Mini or a standard Arduino).
This will be 3 to 5 Volts if connected to an Arduino based systems (like the TinyLily Mini or the TinyDuino), although the full possible voltage range is from 1.8 to 7 Volts
SLP - Sleep Input
This signal can put the motor controller into a low-power “Sleep Modeâ€.
A logic-low “0″ will put the motor controller into sleep mode, a logic-high “1″ will put the motor controller into normal operating mode. If sleep mode is not needed, connect SLP to VCC to allow normal operation.
NOTE: This must be connected in order for the motor controller to work.
IN1 - Input 1
This signal controls the Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high. If left unconnected, this signal is pulled down to a low-logic “0″ with an internal resistor
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and IN2 as the motor direction signal.
IN2 - Input 2
This signal controls the Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high. If left unconnected, this signal is pulled down to a low-logic “0″ with an internal resistor
For motor speed control, we recommend using this as the direction speed control signal, and IN1 as the motor speed control signal.
O1 - Output 1
This is the Output 1 driver and connects to on side of the motor winding
High Current Connection
O2 - Output 2
This is the Output2 driver and connects to on side of the motor winding
High Current Connection
Example Sketch:
Code: Select all
int motorDirPin = 2; // Motor direction connected to digital pin 2
int motorSpeedPin = 3; // Motor speed connected to analog pin 3
void setup()
{
pinMode(motorDirPin, OUTPUT); // sets the pin as output
pinMode(motorSpeedPin, OUTPUT); // sets the pin as output
digitalWrite(motorDirPin, LOW); // sets the default dir to be forward
digitalWrite(motorSpeedPin, LOW); // sets the default speed to be off
}
void loop()
{
// Set the motor direction to forward
digitalWrite(motorDirPin, LOW);
// Ramp the motor speed up
analogWrite(motorSpeedPin, 0); // Min speed forward (motor off)
delay(500);
analogWrite(motorSpeedPin, 63);
delay(500);
analogWrite(motorSpeedPin, 127);
delay(500);
analogWrite(motorSpeedPin, 191);
delay(500);
analogWrite(motorSpeedPin, 255); // Max speed forward
delay(500);
// Ramp the motor speed down
analogWrite(motorSpeedPin, 191);
delay(500);
analogWrite(motorSpeedPin, 127);
delay(500);
analogWrite(motorSpeedPin, 63);
delay(500);
analogWrite(motorSpeedPin, 0); // Min speed forward (motor off)
delay(500);
// Set the motor direction to reverse
digitalWrite(motorDirPin, HIGH);
// Ramp the motor speed up
analogWrite(motorSpeedPin, 255); // Min speed reverse (motor off)
delay(500);
analogWrite(motorSpeedPin, 191);
delay(500);
analogWrite(motorSpeedPin, 127);
delay(500);
analogWrite(motorSpeedPin, 63);
delay(500);
analogWrite(motorSpeedPin, 0); // Max speed reverse
delay(500);
// Ramp the motor speed down
analogWrite(motorSpeedPin, 63);
delay(500);
analogWrite(motorSpeedPin, 127);
delay(500);
analogWrite(motorSpeedPin, 191);
delay(500);
analogWrite(motorSpeedPin, 255); // Min speed reverse (motor off)
delay(500);
}
Downloads: