Components

Dual H-Bridge Motor Driver

Control two DC motors independently with precise PWM speed regulation. Each channel delivers up to 2A continuous current, and the board connects directly to Raspberry Pi GPIO or Arduino digital pins. Built for wheeled robots, conveyor systems, and any project that needs bidirectional motor control.

  • Current per channel 2A continuous
  • Channels 2 independent
  • Speed control PWM
  • Platform Pi & Arduino
Dual H-bridge motor driver board with two DC motors wired to output terminals

Why this driver fits your project

  • Independent channel control

    Each H-bridge operates separately, so you can drive two motors at different speeds and directions—perfect for differential-drive robots that steer by varying wheel speed.

  • PWM speed regulation

    Analog speed control through pulse-width modulation lets you ramp motors smoothly from stop to full speed, reducing mechanical shock and improving precision.

  • Cross-platform GPIO

    Standard logic-level inputs work with both 3.3V Raspberry Pi GPIO and 5V Arduino pins, no level shifter required. Drop it into any microcontroller project.

  • Thermal and overcurrent protection

    Built-in shutdown circuitry prevents damage from stalled motors or short circuits, so a locked wheel won't burn out the driver mid-run.

Technical specifications

Electrical

Continuous current per channel
2A
Peak current per channel
Typically 3–4A (depends on cooling)
Motor supply voltage
Commonly 4.8–36V (check datasheet)
Logic supply voltage
3.3V or 5V
Control signal
PWM-compatible GPIO

Physical

Channels
2 independent H-bridges
Interface
Pin headers for breadboard or direct wiring
Mounting
Through-hole or standoff (check board layout)

Compatibility

Raspberry Pi
All models with GPIO (Zero, 3, 4)
Arduino
Uno, Mega, Nano, and compatible boards
Software libraries
Python GPIO, Arduino motor libraries

How to connect it

Basic wiring takes four GPIO pins per motor—two for direction, one for PWM speed, and one for enable. Power comes from your battery or bench supply.

  • Connect motor power supply

    Wire your battery pack or DC adapter to the driver's VCC and GND terminals. Match the voltage to your motor rating (typically 6–12V for small DC motors).

  • Wire logic supply and ground

    Connect the driver's logic VCC to your Pi's 5V or 3.3V pin, and tie all grounds together—motor supply, logic supply, and Pi/Arduino ground must share a common reference.

  • Attach control pins

    For each motor, connect two GPIO pins to IN1/IN2 (direction) and one PWM-capable pin to the enable input. Check your board's pinout diagram for exact labels.

  • Connect motors to output terminals

    Screw or solder your motor leads to OUT1/OUT2 for channel A and OUT3/OUT4 for channel B. Polarity determines initial direction; you can reverse it in code.

  • Write control code

    Use a GPIO library (Python's RPi.GPIO or Arduino's analogWrite) to set direction bits and PWM duty cycle. Start with low speed to test wiring, then ramp up.

Common projects

Drive a two-wheel or four-wheel chassis by assigning one motor per side. Vary the PWM duty cycle to steer: full speed on both wheels moves straight, slower on one side turns the robot. Add encoders for closed-loop odometry.

Common questions

Can I control stepper motors with this driver?

No, this is a dual H-bridge designed for brushed DC motors. Stepper motors need a dedicated stepper driver that sequences coil phases; a DC motor driver will not provide the correct commutation.

What happens if I exceed 2A per channel?

The driver's thermal protection will shut down the affected channel to prevent damage. If your motor regularly draws more than 2A under load, choose a higher-current driver or add a heatsink and active cooling.

Do I need a separate power supply for the motors?

Yes. Motors draw high peak current that can brownout your Pi or Arduino, corrupting the SD card or resetting the microcontroller. Always power motors from a dedicated battery or supply, sharing only the ground line.

Can I use this with a 3.3V Raspberry Pi and a 12V motor?

Yes. The logic inputs accept 3.3V signals, and the motor supply is independent—connect your 12V battery to the motor power terminals. Just ensure all grounds are common.

How do I reverse motor direction?

Either swap the motor wires on the output terminals, or invert the logic signals in your code. Swapping IN1 and IN2 states reverses the polarity applied to the motor.