I’ve been (very) slowly working on a tank track robot in my spare time. I didn’t want to use an off-the-shelf motor driver so I made this bad boy…
This design uses 4 MOSFETs (IRLD014), 4 resistors and 8 diodes. Being part slim isn’t the awesome thing about this circuit. This motor driver can drive motors forward and backward, with PWM controlled speed, up to 8A EACH. Not many off-the-shelf drivers can do that without massive heat sinks!
I think in a future revision I’m going to split the logic and motor power rails to help eliminate noise. Another important note is I have capacitors on my motors (3 for each motor) that should be overkill for noise protection. If you don’t you should add capacitors to the board.
This circuit basically works by using 1 MOSFET to turn the motor on. You can use PWM to control the speed of the motor. Another MOSFET is used to flip the direction of the motor by driving the relay. More current is used while going in reverse as a side effect of turning the relay ‘on’. The circuit is then basically copy and pasted to allow for driving 2 motors.
Questions? Leave ‘em in the comments! I’ve also attached the Eagle schematic and board files (schematic is messy…). I used Pulsar TTP to transfer the design onto copper clad board and etched it at home.