

The DRV8833 is a dual H-bridge motor driver designed for controlling two DC motors or a single stepper motor. It operates within a voltage range of 2.7V to 10.8V, making it suitable for low-voltage motor control applications. The DRV8833 includes advanced features such as adjustable current limiting, thermal shutdown, and overcurrent protection, ensuring reliable operation and protection for both the driver and the connected motors.








The DRV8833 comes in a 16-pin HTSSOP package. Below is the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | AOUT1 | Output 1 for H-bridge A |
| 2 | AOUT2 | Output 2 for H-bridge A |
| 3 | VM | Motor power supply (2.7V to 10.8V) |
| 4 | GND | Ground connection |
| 5 | BOUT1 | Output 1 for H-bridge B |
| 6 | BOUT2 | Output 2 for H-bridge B |
| 7 | VCC | Logic power supply (typically 3.3V or 5V) |
| 8 | ENABLE | Enable pin for both H-bridges (active high) |
| 9 | AIN1 | Input 1 for H-bridge A (controls direction and speed with PWM) |
| 10 | AIN2 | Input 2 for H-bridge A (controls direction and speed with PWM) |
| 11 | BIN1 | Input 1 for H-bridge B (controls direction and speed with PWM) |
| 12 | BIN2 | Input 2 for H-bridge B (controls direction and speed with PWM) |
| 13 | NC | No connection |
| 14 | NC | No connection |
| 15 | FAULT | Fault indicator (active low, indicates overcurrent or thermal shutdown) |
| 16 | SLEEP | Sleep mode pin (active low, reduces power consumption when not in use) |
Power Supply:
Motor Connections:
Control Signals:
Sleep Mode:
Fault Handling:
Below is an example of controlling a single DC motor using the DRV8833 and Arduino UNO:
// Define motor control pins
const int AIN1 = 9; // Connect to AIN1 pin of DRV8833
const int AIN2 = 10; // Connect to AIN2 pin of DRV8833
const int ENABLE = 8; // Connect to ENABLE pin of DRV8833
void setup() {
// Set motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(ENABLE, OUTPUT);
// Enable the motor driver
digitalWrite(ENABLE, HIGH);
}
void loop() {
// Rotate motor forward
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(2000); // Run motor for 2 seconds
// Rotate motor backward
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(2000); // Run motor for 2 seconds
// Stop motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(2000); // Stop for 2 seconds
}
Motor Not Spinning:
Cause: ENABLE pin is not set high.
Solution: Ensure the ENABLE pin is connected to a HIGH signal.
Cause: Incorrect wiring of motor terminals.
Solution: Verify the motor connections to AOUT1/AOUT2 or BOUT1/BOUT2.
Overheating:
FAULT Pin is Low:
No Response to Control Signals:
Q: Can I use the DRV8833 to control a stepper motor?
A: Yes, the DRV8833 can control a bipolar stepper motor by driving its two coils using the two H-bridges.
Q: What happens if the motor draws more than 1A continuously?
A: The DRV8833 may enter thermal shutdown or overcurrent protection mode to prevent damage.
Q: Can I leave unused pins floating?
A: No, unused input pins (e.g., AIN1, AIN2) should be tied to a defined logic level (HIGH or LOW) to avoid unpredictable behavior.