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.
Explore Projects Built with DRV 8835 Motor Driver
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
This circuit controls a DC motor using an Adafruit DRV8833 motor driver, which is powered by a 12V battery. The motor speed is adjusted via a rotary potentiometer, and the circuit is activated by a toggle switch. A phototransistor is used to provide feedback or control signals to the motor driver.
This circuit controls a hobby gearmotor using an Adafruit DRV8833 motor driver, powered by a 12V battery. A toggle switch is used to control the power to the motor driver, which in turn drives the motor based on the switch's position.
This circuit is designed to control a bipolar stepper motor using a DRV8825 stepper motor driver, which is interfaced with a Nano 3.0 ATmega328P microcontroller. The microcontroller sends step and direction signals to the DRV8825, which in turn drives the stepper motor's coils. Power is supplied to the system through a 5V adapter for the logic and a DC power source for the motor, with an electrolytic capacitor for voltage smoothing on the motor supply.
This circuit controls a Nema 17 stepper motor using a DRV8825 driver module, with an Arduino UNO microcontroller dictating the step and direction. Additionally, the circuit can switch a DC motor on and off using a relay module controlled by the Arduino. The power supply provides the necessary voltage for the relay and the motor driver, which in turn powers the stepper motor, while the Arduino's firmware defines the motor's stepping behavior and the relay's switching to control the DC motor.
Robotics: Driving wheels or actuators in small robots
Automation: Controlling conveyor belts or small mechanisms
DIY Projects: Building motorized toys or gadgets
Stepper Motor Control: Driving small stepper motors in CNC machines or 3D printers
Technical Specifications
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)
Pin Configuration and Descriptions
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.
Usage Instructions
How to Use the DRV 8835 in a Circuit
Power Connections:
Connect the motor power supply (VM) to the VM pin. Ensure the voltage is within the 0V to 11V range.
Connect the logic power supply (VCC) to the VCC pin. Ensure the voltage is within the 1.8V to 7V range.
Connect the GND pin to the ground of your power supply.
Motor Connections:
For motor A, connect its terminals to AOUT1 and AOUT2.
For motor B, connect its terminals to BOUT1 and BOUT2.
Control Signals:
Use the AIN1 and AIN2 pins to control motor A.
Use the BIN1 and BIN2 pins to control motor B.
Apply PWM signals to these pins for speed control, or use them in a PHASE/ENABLE configuration for direction and speed control.
Enable the Driver:
Ensure the control signals are within the logic voltage range (1.8V to 7V).
Use a microcontroller (e.g., Arduino UNO) to generate the control signals.
Important Considerations and Best Practices
Current Limiting: Ensure the motor's current draw does not exceed the driver's maximum continuous current rating (1.2A per channel).
Heat Dissipation: If operating near the maximum current, consider adding a heatsink or improving ventilation to prevent thermal shutdown.
Decoupling Capacitors: Place a capacitor (e.g., 100µF) across the VM and GND pins to stabilize the motor power supply.
Avoid Reverse Polarity: Ensure correct polarity for both the motor and logic power supplies to prevent damage.
Example Code for Arduino UNO
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
}
Troubleshooting and FAQs
Common Issues and Solutions
Motors Not Running:
Verify that the motor power supply (VM) and logic power supply (VCC) are connected and within the specified voltage ranges.
Check the control signals (AIN1, AIN2, BIN1, BIN2) to ensure they are being correctly generated by the microcontroller.
Driver Overheating:
Ensure the motor's current draw does not exceed 1.2A per channel.
Improve ventilation or add a heatsink to the driver.
Erratic Motor Behavior:
Add a decoupling capacitor (e.g., 100µF) across the VM and GND pins to stabilize the power supply.
Check for loose or incorrect wiring connections.
Arduino Code Not Working:
Verify that the correct pins are defined in the code and connected to the driver.
Ensure the Arduino is powered and properly uploading the code.
FAQs
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.