The DRV 8835 is a dual H-bridge motor driver manufactured by Pololu, designed for controlling DC motors and stepper motors. It supports motor supply voltages ranging from 0V to 11V and can deliver up to 1.2A continuous current per channel (or 1.5A peak). This compact and efficient motor driver is ideal for robotics, automation, and other motor control applications.
The following table outlines the key technical details of the DRV 8835 motor driver:
Parameter | Value |
---|---|
Motor Supply Voltage (VM) | 0V to 11V |
Logic Voltage (VCC) | 1.8V to 7V |
Continuous Current per H-Bridge | 1.2A |
Peak Current per H-Bridge | 1.5A |
Control Interface | PWM or PHASE/ENABLE |
Protection Features | Overcurrent, Thermal Shutdown |
Dimensions | 0.6" × 0.8" × 0.1" (15mm × 20mm × 3mm) |
The DRV 8835 motor driver has the following pinout:
Pin | Name | Description |
---|---|---|
1 | VM | Motor power supply (0V to 11V). Connect to the positive terminal of the motor. |
2 | GND | Ground connection. Common ground for logic and motor power. |
3 | AIN1 | Input 1 for motor A. Used for direction or PWM control. |
4 | AIN2 | Input 2 for motor A. Used for direction or PWM control. |
5 | BIN1 | Input 1 for motor B. Used for direction or PWM control. |
6 | BIN2 | Input 2 for motor B. Used for direction or PWM control. |
7 | VCC | Logic power supply (1.8V to 7V). |
8 | AOUT1 | Output 1 for motor A. Connect to one terminal of motor A. |
9 | AOUT2 | Output 2 for motor A. Connect to the other terminal of motor A. |
10 | BOUT1 | Output 1 for motor B. Connect to one terminal of motor B. |
11 | BOUT2 | Output 2 for motor B. Connect to the other terminal of motor B. |
Power Connections:
Motor Connections:
Control Signals:
Enable the Driver:
Below is an example of how to control two DC motors using the DRV 8835 with an Arduino UNO:
// Define motor control pins
const int AIN1 = 3; // Motor A input 1 (PWM)
const int AIN2 = 4; // Motor A input 2
const int BIN1 = 5; // Motor B input 1 (PWM)
const int BIN2 = 6; // Motor B input 2
void setup() {
// Set motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
}
void loop() {
// Example: Drive motor A forward at 50% speed
analogWrite(AIN1, 128); // PWM signal (0-255)
digitalWrite(AIN2, LOW); // Set direction
// Example: Drive motor B backward at 75% speed
digitalWrite(BIN1, LOW); // Set direction
analogWrite(BIN2, 192); // PWM signal (0-255)
delay(2000); // Run motors for 2 seconds
// Stop both motors
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
delay(2000); // Wait for 2 seconds
}
Motors Not Running:
Driver Overheating:
Erratic Motor Behavior:
Arduino Code Not Working:
Q: Can the DRV 8835 drive stepper motors?
A: Yes, the DRV 8835 can drive small stepper motors by controlling both H-bridges. You will need to generate the appropriate step and direction signals.
Q: What happens if the motor draws more than 1.2A?
A: The driver includes overcurrent protection and will shut down temporarily to prevent damage. Reduce the motor load or use a motor with lower current requirements.
Q: Can I use the DRV 8835 with a 3.3V microcontroller?
A: Yes, the DRV 8835 supports logic voltages as low as 1.8V, making it compatible with 3.3V systems.