Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use DRV8833 Motor Driver: Examples, Pinouts, and Specs

Image of DRV8833 Motor Driver
Cirkit Designer LogoDesign with DRV8833 Motor Driver in Cirkit Designer

Introduction

The DRV8833 is a dual H-bridge motor driver designed to control two DC motors or one stepper motor. It provides bidirectional control and supports adjustable speed through Pulse Width Modulation (PWM) signals. Compact and efficient, the DRV8833 is ideal for battery-powered applications and robotics projects. Its built-in protection features, such as overcurrent and thermal shutdown, make it a reliable choice for motor control.

Explore Projects Built with DRV8833 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!
Battery-Powered Motor Control System with Phototransistor and Potentiometer
Image of MotorDriver with PhotoRes: A project utilizing DRV8833 Motor Driver in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Motor Controller with DRV8833 Driver
Image of 2相4線式モーター: A project utilizing DRV8833 Motor Driver in a practical application
This circuit is designed to control a 2-phase 4-wire motor using an Arduino Nano 3.0 and a DRV8833 motor driver. The Arduino Nano provides control signals to the DRV8833, which in turn drives the motor, allowing for precise motor control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Motor Control System with Adafruit DRV8833 and Toggle Switch
Image of MotorDriver1: A project utilizing DRV8833 Motor Driver in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 C3 Controlled Robot with VL6180 Time of Flight Sensor
Image of SRD-1 Rover: A project utilizing DRV8833 Motor Driver in a practical application
This circuit is designed to control a pair of DC gearmotors using a DRV8833 motor driver, with an ESP32 C3 microcontroller as the control unit. The microcontroller also interfaces with an Adafruit VL6180 Time of Flight sensor for distance measurement. The embedded code on the ESP32 C3 facilitates basic motor control (forward and backward) and reads distance data from the sensor, which is likely used for obstacle detection or range finding in a robotic application.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with DRV8833 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!
Image of MotorDriver with PhotoRes: A project utilizing DRV8833 Motor Driver in a practical application
Battery-Powered Motor Control System with Phototransistor and Potentiometer
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of 2相4線式モーター: A project utilizing DRV8833 Motor Driver in a practical application
Arduino Nano Motor Controller with DRV8833 Driver
This circuit is designed to control a 2-phase 4-wire motor using an Arduino Nano 3.0 and a DRV8833 motor driver. The Arduino Nano provides control signals to the DRV8833, which in turn drives the motor, allowing for precise motor control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MotorDriver1: A project utilizing DRV8833 Motor Driver in a practical application
Battery-Powered Motor Control System with Adafruit DRV8833 and Toggle Switch
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SRD-1 Rover: A project utilizing DRV8833 Motor Driver in a practical application
ESP32 C3 Controlled Robot with VL6180 Time of Flight Sensor
This circuit is designed to control a pair of DC gearmotors using a DRV8833 motor driver, with an ESP32 C3 microcontroller as the control unit. The microcontroller also interfaces with an Adafruit VL6180 Time of Flight sensor for distance measurement. The embedded code on the ESP32 C3 facilitates basic motor control (forward and backward) and reads distance data from the sensor, which is likely used for obstacle detection or range finding in a robotic application.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics and automation
  • Remote-controlled vehicles
  • Conveyor belts and small machinery
  • DIY electronics projects
  • Stepper motor control for 3D printers or CNC machines

Technical Specifications

The DRV8833 motor driver has the following key technical details:

Parameter Value
Operating Voltage (Vcc) 2.7V to 10.8V
Motor Output Current Up to 1.5A per channel (continuous)
Peak Current (per channel) 2A (for short durations)
Logic Input Voltage 0V to 5.5V
PWM Frequency Up to 250 kHz
Thermal Shutdown Yes
Overcurrent Protection Yes
Operating Temperature -40°C to 85°C

Pin Configuration and Descriptions

The DRV8833 comes in a 16-pin package. Below is the pinout and description:

Pin Name Description
1 AIN1 Input 1 for H-Bridge A. Controls motor direction when paired with AIN2.
2 AIN2 Input 2 for H-Bridge A. Controls motor direction when paired with AIN1.
3 BIN1 Input 1 for H-Bridge B. Controls motor direction when paired with BIN2.
4 BIN2 Input 2 for H-Bridge B. Controls motor direction when paired with BIN1.
5 VCC Power supply for the motor driver (2.7V to 10.8V).
6 GND Ground connection.
7 AOUT1 Output 1 for H-Bridge A. Connect to one terminal of Motor A.
8 AOUT2 Output 2 for H-Bridge A. Connect to the other terminal of Motor A.
9 BOUT1 Output 1 for H-Bridge B. Connect to one terminal of Motor B.
10 BOUT2 Output 2 for H-Bridge B. Connect to the other terminal of Motor B.
11 nSLEEP Sleep mode input. Pull low to disable the driver and reduce power consumption.
12 nFAULT Fault output. Active low when a fault condition occurs (e.g., overcurrent).
13 VMA Motor power supply for H-Bridge A.
14 VMB Motor power supply for H-Bridge B.
15 DECAY Decay mode selection for current regulation.
16 NC No connection.

Usage Instructions

How to Use the DRV8833 in a Circuit

  1. Power Supply: Connect the motor power supply (2.7V to 10.8V) to the VCC pin and ground to the GND pin. Ensure the power supply can handle the current requirements of your motors.
  2. Motor Connections: Connect the motor terminals to the output pins (AOUT1, AOUT2 for Motor A; BOUT1, BOUT2 for Motor B).
  3. Logic Inputs: Use the AIN1, AIN2, BIN1, and BIN2 pins to control the direction and speed of the motors. These pins accept logic levels (0V to 5.5V).
  4. PWM Control: Apply PWM signals to the input pins to control motor speed. For example, a 50% duty cycle will run the motor at half speed.
  5. Sleep Mode: Pull the nSLEEP pin low to put the driver into low-power sleep mode. Pull it high to enable normal operation.
  6. Fault Monitoring: Monitor the nFAULT pin for fault conditions. If it goes low, check for issues such as overcurrent or thermal shutdown.

Example: Connecting to an Arduino UNO

Below is an example of how to control a single DC motor using the DRV8833 and an Arduino UNO:

Circuit Connections

  • Connect AIN1 to Arduino pin 9.
  • Connect AIN2 to Arduino pin 10.
  • Connect nSLEEP to Arduino pin 8.
  • Connect AOUT1 and AOUT2 to the motor terminals.
  • Connect VCC to a 5V power supply and GND to ground.

Arduino Code

// Define motor control pins
const int AIN1 = 9;  // Motor direction control pin 1
const int AIN2 = 10; // Motor direction control pin 2
const int nSLEEP = 8; // Sleep mode control pin

void setup() {
  // Set motor control pins as outputs
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
  pinMode(nSLEEP, OUTPUT);

  // Enable the motor driver by pulling nSLEEP high
  digitalWrite(nSLEEP, HIGH);
}

void loop() {
  // Rotate motor forward
  digitalWrite(AIN1, HIGH);
  digitalWrite(AIN2, LOW);
  delay(2000); // Run motor for 2 seconds

  // Stop motor
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  delay(1000); // Pause for 1 second

  // 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(1000); // Pause for 1 second
}

Important Considerations

  • Ensure the motor power supply voltage matches the motor's specifications.
  • Avoid exceeding the maximum current rating of 1.5A per channel to prevent damage.
  • Use decoupling capacitors near the VCC and GND pins to reduce noise and improve stability.
  • If using PWM, ensure the frequency is within the supported range (up to 250 kHz).

Troubleshooting and FAQs

Common Issues

  1. Motor Not Spinning

    • Check the power supply connections and ensure the nSLEEP pin is pulled high.
    • Verify the logic input signals (AIN1, AIN2, etc.) are correctly configured.
  2. Motor Spins in the Wrong Direction

    • Reverse the connections to the motor terminals or swap the logic levels on the input pins.
  3. Overheating

    • Ensure the motor current does not exceed the driver's maximum rating.
    • Improve ventilation or add a heatsink to the driver.
  4. nFAULT Pin is Low

    • Check for overcurrent or thermal shutdown conditions.
    • Reduce the motor load or allow the driver to cool down.

FAQs

Q: Can I use the DRV8833 to control a stepper motor?
A: Yes, the DRV8833 can control a bipolar stepper motor by using both H-bridges. You will need to sequence the inputs (AIN1, AIN2, BIN1, BIN2) appropriately to drive the stepper motor.

Q: What happens if I exceed the current rating?
A: The DRV8833 has built-in overcurrent protection. If the current exceeds the limit, the driver will shut down to prevent damage.

Q: Can I use a 3.3V microcontroller with the DRV8833?
A: Yes, the logic input pins are compatible with 3.3V and 5V logic levels.

Q: How do I select the decay mode?
A: The DECAY pin allows you to select the decay mode for current regulation. Refer to the datasheet for specific configurations.