

The Pololu DRV8838 Single Brushed DC Motor Driver Carrier is a compact and efficient module designed to control the speed and direction of a single brushed DC motor. It is based on the Texas Instruments DRV8838 motor driver IC and is ideal for applications requiring precise motor control with minimal space requirements. The module supports control via PWM signals, making it easy to interface with microcontrollers such as Arduino, Raspberry Pi, or other embedded systems.








The following table outlines the key technical details of the Pololu DRV8838 motor driver carrier:
| Parameter | Value |
|---|---|
| Operating Voltage (VCC) | 0 V to 11 V |
| Motor Voltage (VM) | 0 V to 11 V |
| Continuous Output Current | Up to 1.7 A |
| Peak Output Current | 1.8 A (for short durations) |
| Control Interface | PWM, DIR (direction control) |
| Logic Voltage Range | 1.8 V to 7 V |
| Protection Features | Overcurrent protection, thermal shutdown, undervoltage lockout |
| Dimensions | 0.6" × 0.8" × 0.1" (15 mm × 20 mm × 3 mm) |
| Weight | 0.5 g |
The DRV8838 motor driver carrier has six pins. The table below describes each pin:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Motor power supply (0 V to 11 V). Connect to the positive terminal of the motor power source. |
| GND | Ground | Ground connection for both logic and motor power. |
| VCC | Power Input | Logic power supply (1.8 V to 7 V). Connect to the microcontroller's logic voltage. |
| IN1 | Logic Input | Motor control input 1. Used for PWM or direction control. |
| IN2 | Logic Input | Motor control input 2. Used for PWM or direction control. |
| OUT1, OUT2 | Motor Outputs | Connect to the two terminals of the brushed DC motor. |
VIN pin and ground to the GND pin. Ensure the voltage is within the specified range (0 V to 11 V).VCC pin.OUT1 and OUT2 pins.IN1 and IN2 pins to control the motor's speed and direction:IN1 for speed control.IN2 to set the motor's direction (HIGH or LOW).Below is an example of how to control the DRV8838 with an Arduino UNO:
// Define motor control pins
const int IN1 = 9; // PWM pin for speed control
const int IN2 = 8; // Direction control pin
void setup() {
// Set motor control pins as outputs
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
void loop() {
// Rotate motor forward at 50% speed
analogWrite(IN1, 128); // PWM value (0-255) for speed
digitalWrite(IN2, LOW); // Set direction to forward
delay(2000); // Run for 2 seconds
// Rotate motor backward at 75% speed
analogWrite(IN1, 192); // PWM value (0-255) for speed
digitalWrite(IN2, HIGH); // Set direction to backward
delay(2000); // Run for 2 seconds
// Stop the motor
analogWrite(IN1, 0); // Set speed to 0
delay(1000); // Wait for 1 second
}
VIN and GND) to reduce noise and voltage spikes.Motor Does Not Spin
IN1 and IN2) are being sent correctly from the microcontroller.Motor Spins in the Wrong Direction
OUT1 and OUT2).IN2 pin.Driver Overheats
PWM Control Not Working
Q: Can I use this driver with a 12 V motor?
A: No, the maximum motor voltage supported by the DRV8838 is 11 V. Using a 12 V motor may damage the driver.
Q: What happens if the motor stalls?
A: The DRV8838 includes overcurrent protection, which will disable the outputs if the current exceeds the limit. Reduce the load on the motor to prevent stalling.
Q: Can I control the motor without PWM?
A: Yes, you can set IN1 to HIGH or LOW for full-speed operation and use IN2 to control the direction.
Q: Is this driver compatible with 3.3 V logic?
A: Yes, the DRV8838 supports logic voltages as low as 1.8 V, making it compatible with 3.3 V systems.
By following this documentation, you can effectively integrate the Pololu DRV8838 Single Brushed DC Motor Driver Carrier into your projects for reliable and precise motor control.